Spring Boot核心精要
自动配置:自动提供常用功能相关配置
起步依赖:自动引入所需依赖库
命令行界面:可选特性,只需写代码即可完成完整应用,无需传统项目构建
Actuator:深入解析运行中的Spring Boot应用程序
-
自动配置
Spring Boot会为常见配置场景进行自动配置。
e.g.1.在应用程序的Classpath里发现H2数据库的库,它会自动配置一个嵌入式H2数据库。
e.g.2.在应用程序的Classpath里发现JdbcTemplate,它会自动配置一个JdbcTemplate的Bean。
Spring Boot会自动配置Bean,并做好将其注入用户自定义Bean的准备。 -
起步依赖
向项目中添加依赖需要解决问题:
需要什么库?他的Group和Artifact是什么(配置Maven需要)?需要引入哪个版本?版本间是否会冲突?
起步依赖利用传递依赖解析,将常用库聚合在一起,组成了为特定功能定制的依赖
e.g.1.
用Spring MVC构造一个接口,将JSON作为资源表述,用JSR-303规范进行校验,运行在tomcat容器当中。
要实现上面目标,需要在Maven或Gradle多个依赖包。
但若选用Spring Boot的Web起步依赖,只需添加一个Web起步依赖包( org.springframework.boot:spring-boot-starter-web)。此包会根据依赖传递把其余所需依赖引入到项目当中。
起步依赖不仅可以减少依赖数量,实际上还指定了应用程序所需的一类功能。根据应用类型,添加不同的起步依赖,如Web应用添加Web起步依赖。若应用需用到JPA持久化,可加入jpa起步依赖。若需要安全功能,可加入security起步依赖。
注:Spring Boot起步依赖基本都以 spring-boot-starter 打头,随后是直接代表其功能的名字,比如 web 、 test ,
下文出现起步依赖的名字时,可能就直接用其前缀后的单词来表示了
-
命令行界面
Spring Boot CLI利用起步依赖和自动配置,自动进行应用功能识别,让使用者只需专注于代码本身。 -
Actuator
其他几个部分用于简化开发,而Actuator则提供运行时检视应用程序内部情况能力。
包括:
Spring应用程序上下文中配置的Bean
Spring Boot自动配置所做的决策
环境变量、系统属性、配置属性和命令行参数
线程当前状态
最近处理过的HTTP请求追踪情况
内存用量、垃圾回收、Web请求及数据源用量相关指标
Spring Boot非应用服务器
Spring Boot可以把web应用程序变为可执行jar文件,不用部署到传统应用服务器便可在命令行中运行。主要原因是Spring Boot内嵌了Servlet容器(tomcat、jetty或undertow),以此实现这一功能。
参考文献:Spring Boot实战 ,丁雪丰 (译者)