当前位置: 首页 > news >正文

【JavaEE】springboot 入门——springboot简介

springframework

文章目录

  • springframework
    • 解决了什么问题?
    • 未解决什么问题?
  • 概述
    • 特点
    • 核心功能

解决了什么问题?

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的EnterpriseJavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

  1. 使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
  2. 可以提供众多服务,事务管理,WS等。
  3. AOP的很好支持,方便面向切面编程。
  4. 对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
  5. Spring DI机制降低了业务对象替换的复杂性。
  6. Spring属于低侵入,代码污染极低。
  7. Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

未解决什么问题?

虽然 spring 的组件代码是轻量级的,但是他的配置文件是重量级的。

所有的配置都代表了开发时的损耗,因为在思考spring特性配置和解决业务问题之间需要进行思维的转换。所以编写配置挤占了编写应用程序的逻辑和时间。和所有的框架一样,spring实用,但是与此同时他要求的回报也不少。

除此之外,项目的依赖管理也是一件耗时费力的事情。

  1. jsp中要写很多代码,控制器过于灵活,缺少一个公用的控制器
  2. spring 不支持分布式,这也是 EJB 仍然在使用的原因

概述

springboot 对上述的 spring 的缺点进行优化和改善,基于约定优于配置的思想,可以让开发人员不必配置与逻辑业务之间进行思维转化。

特点

  1. 为基于 spring 的开发提供更快的入门体验
  2. 开箱即用,没有代码生成,无需 XML 配置。同时也可以更改默认值来满足特定的需求
  3. 提供一些大型项目中常见的非功能特性,比如嵌入式服务器,安全,指标,健康检测,外部配置

核心功能

  • 起步依赖

本质就是一个 Maven 项目对象模型(Project Object Model, pom),定义了对其他库的传递依赖。这些东西加在一起就是支持某项功能。

简单来说,起步依赖就是将具备某种功能的坐标打包在一起,并提供一些默认的功能

  • 自动配置

spring boot 的自动配置就是一个运行时(更加准确来说就是应用程序启动时)的过程,考虑总多因素,才决定spring配置应该用哪一个。这个过程是spring自动完成的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 运维.Linux.bash学习笔记.数组及其使用
  • java中创建对象地方式有哪几种?(面试高频)
  • “八股文”的江湖:助力、阻力还是空谈?深度解析程序员面试的敲门砖
  • 把本地项目推送到远程仓库
  • C# Solidworks二次开发------C#中的进度条
  • 某“新一线城市“前端面试,纯纯被恶心到了
  • 【数据结构】Java实现二叉搜索树
  • 【大模型系列篇】本地问答系统-部署Ollama、Open WebUI
  • 【MATLAB源码】机器视觉与图像识别技术(7)续---BP神经网络
  • vite打包文件配置到IIS出现页面、图片加载不出来的问题
  • JavaScript Reference Type解读
  • git安装和使用(托管服务 分支 克隆)超细教程
  • AR 眼镜之-充电动画定制-实现方案
  • 安全编程的代码示例
  • libevent入门篇
  • 【Linux系统编程】快速查找errno错误码信息
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • CAP 一致性协议及应用解析
  • Django 博客开发教程 16 - 统计文章阅读量
  • FineReport中如何实现自动滚屏效果
  • Java 内存分配及垃圾回收机制初探
  • Javascript Math对象和Date对象常用方法详解
  • python大佬养成计划----difflib模块
  • Spark学习笔记之相关记录
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Yii源码解读-服务定位器(Service Locator)
  • 如何胜任知名企业的商业数据分析师?
  • 入口文件开始,分析Vue源码实现
  • 无服务器化是企业 IT 架构的未来吗?
  • 一份游戏开发学习路线
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 数据可视化之下发图实践
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $L^p$ 调和函数恒为零
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (3)nginx 配置(nginx.conf)
  • (C)一些题4
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (多级缓存)缓存同步
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (三)Honghu Cloud云架构一定时调度平台
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转)项目管理杂谈-我所期望的新人
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 发展历程
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET中winform传递参数至Url并获得返回值或文件