一、SpringBoot产生的契机
我们知道,搭建一个Spring+Struts+Hibernate(SSH)架构或Spring+SpringMVC+MyBatis(SSM)架构的应用,基本上都需要以下步骤:
(1)配置Maven依赖
(2)配置数据库properties配置文件,日志properties文件
(3)配置Spring核心类加载文件bean.xml,其中会配置:
a.properties配置引入
b.包扫描
c.数据源(数据库连接池)
d.数据库会话工厂
e.事务管理、通知
f.其它相关bean配置
(4)在web.xml中配置springmvc/struts过滤器
(5)构建dao、service以及业务层
(6)创建实体类javaBean
(7)编写sql配置(SpringMVC的Mapper文件)或sql表结构配置(hibernate的表结构xml)
我们可以看到,构建一个SSH或者SSM的web工程需要前期大量的配置和编写,搭建环境耗费了一定的时间。
目前有很多中小型企业的业务量比较小,应用的体积不大,为了提高开发效率,既需要Java工程的稳定性,有需要Web工程配置的简约、高效率,那么传统结构的SSH与SSM工程满足不了他们的需求,于是乎SpringBoot应运而生。
二、什么是SpringBoot?
顾名思义,SpringBoot自然是在Spring的基础上产生的(确切的说是Spring4.0版本的基础上),其中“Boot”的意思就是“引导”(不是靴子^_^),意在简化开发模式,使开发者快速开发出基于Spring的应用。
SpringBoot并不是Spring官方的框架模式,而是由Pivotal团队二次开发并开源提供。它的设计目的就是为了简化Spring应用的初始搭建以及开发过程。SpringBoot的出现使得开发人员不再拘于繁琐的模板化的配置,可以快速搭建应用。
要注意的是,SpringBoot不是一个新的框架,而是在Spring框架的基础上做了大量的优化。
三、SpringBoot特点
都说SpringBoot简化了前期配置和开发流程,那么它的简化特点是什么呢?
SpringBoot的特点如下所示:
(1)自动配置Spring
不需要配置Spring的数据源、连接池、事务通知等类加载初始化等信息,SpringBoot会
自动讲这些信息配置完毕。
下图就是SpringBoot简化配置的过程:
SpringBoot将原有的XML配置改为Java配置,将bean注入改为使用注解注入的方式(@Autowire),并将多个xml、properties配置浓缩在一个appliaction.yml配置文件中。
(2)简化Maven配置,整合常用依赖
SpringBoot的依赖整合了常用的开发库,例如spring-webmvc、jackson-json、validation-api和tomcat等。当我们引入核心依赖时,SpringBoot会自引入其他依赖。
我们不需要再自己寻找web相关的jar包依赖一个一个自己添加进去,只需要引入SpringBoot为我们提供的核心依赖即可。
下面是SpringBoot的依赖架构,其中“spring-boot-sterter-web”就包含了web开发的常用依赖:
(3)可自动嵌入中间件插件(Tomcat/Jboss/jetty)
SpringBoot的核心依赖中包含了Server服务的基本jar,当我们需要什么中间件时,替换
相关的SpringBoot中间件依赖即可,它会帮我们识别中间件
(4)提供应用状态(指标,健康检查和外部配置)
SpringBoot还可以提供应用的运行状态,供开发人员观察项目目前运行的情况。
总结一句话,SpringBoot就是一个轻量级,简化配置和开发流程的web整合框架。