一、是什么?
Springboot是基于Spring的全新框架,目的是简化spring应用的搭建和开发过程。
二、为什么会出现
在Springboot出现以前,构建一个基础的Spring框架需要以下步骤:
- List item
- 创建一个Java web项目
- 手动下载或通过maven引入第三方jar包
- 配置web.xml(DispatcherServlet、encodingFilter字符集过滤器、log、编码、session、mapping等)
- 配置spring及MVC九大组件需要的部分
- 开发业务
- 开发非业务功能(如安全、健康检查)
- 下载并安装tomcat
- 发布和部署项目
对于上面的流程,其实有很多可以改进的地方,让我们一起来看看:
2. 手动下载或通过maven引入第三方jar包
引入jar包需要知道版本,有一些jar需要依赖于某一特定版本的其他jar包。光是解决版本冲突,引入jar包就会耗费开发人员大量的时间和精力。
3. spring配置
spring配置里有一些基本是通用的配置,完全可以抽离出来,不需要重复配置。
6. 开发非业务功能
如果每个项目都需要一些非业务功能,如健康检查、内存监控等,要么做一套这样的功能到处复制,要么打成jar包各个项目引用。
7. 部署项目
项目需要打成war包,复制到tomcat上部署才能访问。
总结:
普通Spring框架的搭建有以下几大问题——依赖复杂、编码复杂、配置复杂、部署复杂、监控复杂。
三、解决了什么问题?
简化依赖、简化容器(简化部署)、简化配置、简化通用组件。
简化依赖:
一个功能可能需要依赖一组多个jar包,而多个jar包的版本升级、版本冲突需要人为去维护,这会耗费过多的精力。Springboot按功能模块将pom.xml划分成一个个starter,使得该模块相关联的全部jar包只用一个单独的maven依赖就可以引用,大大减少配置的时间、降低维护的难度。
简化容器:
通过maven中一个spring-boot-starter-web配置就可以引入一个内置的tomcat。
简化XML配置:
Spring中大量的xml配置文件被诟病已久,不仅繁琐而且混乱。Springboot得益于注解和自动配置,大部分bean管理都不需要xml文件配置。少量需要特殊要求可以通过@Configuration和@ConfigurationProperties注解,以编码的方式管理,最大限度的减少甚至消除对xml的依赖。
简化自动配置:
非springboot的web项目搭建时,需要下载对应的jar包,并配置相应的spring Listener及spring MVC9大组件中相应的bean。而自动化配置只需把相关的jar包加载到项目中,springboot会自动装配相应的bean。
简化通用组件:
任何项目对系统(CPU、内存)、项目状态及指标、请求跟踪等信息的监控功能都是通用并且必要的,因此springboot提供了一整套现成的解决方案,只需要引入相关的jar包,通过相应的配置,就可以打开所需要的监控功能。