Spring Boot提供了四个主要特性,能够改变开发Spring应用程序的的方式:
- Spring Boot Starter:它将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或者Gradle中;
- 自动配置:Spring Boot的自动配置特性利用了Spring4对条件化配置的支持,合理的推测应用所需的bean并自动化配置它们;
- 命令行接口(Command-line interface,CLI):Spring Boot的CLI发挥了Groovy编程语言的优势,并结合自动配置进一步简化Spring应用的开发;
- Actuator:它为Spring Boot应用添加了一定的管理特性。
一、Spring Boot Starter依赖将所需的常见依赖按组聚集在一起,形成单条的依赖
例如:
Starter | 所提供的依赖 |
---|---|
spring-boot-starter-aop | spring-boot-starter、spring-aop、AspectJ Runtime、AspectJ Weaver、spring-core |
spring-boot-starter-jdbc | spring-boot-starter、spring-jdbc、tomcat-jdbc、spring-tx |
starter使用了Maven和Gradle的依赖传递方案,Starter在自己的pom.xml文件中声明了多个依赖。当我们将某一个依赖添加到Maven或Gradle构建中的时候,Starter的依赖将会自动的传递性解析。这些依赖本身可能也会有其他的依赖。一个Starter可能会传递性的引入几十个依赖。
注意:很多Starter引用了其他的Starter,依赖是有传递性的。
二、自动配置
Spring Boot的Starter减少了构建中依赖列表的长度,而Spring Boot的自动配置功能则减少了Spring配置的数量。它在实现时,会考虑应用中的其他因素并推断你所需要的Spring配置。
如:将Thymeleaf添加到项目类路径中,Spring Boot探测到会自动配置Thymeleaf模板锁需要的bean。
Spring Boot Starter也会出发自动配置。
如:如果想使用Spring MVC,将Web Starter作为依赖构建,会自动添加Spring MVC的依赖。
三、Spring Boot CLI
Spring Boot CLI充分利用了Spring Boot Starter和自动配置的魔力,并添加了一些Groovy的功能。它简化了Spring的开发流程,通过CLI,我们能够运行一个或多个Groovy脚本,并查看它是如何运行的。在应用的运行过程中,CLI能够自动导入Spring类型并解析依赖。
四、Acuator
Spring Boot Acuator为Spring Boot项目带来了很多有用的特性,包括:
- 管理端点;
- 合理的异常处理以及默认的“/error”映射端点;
- 获取应用信息的“/info”端点;
- 当启用Spring Security时,会有一个审计事件框架;
Acuator最有用和最有意思的特性是管理端点。
如:
GET /beans:列出运行应用所配置的bean;
Get /dump:列出应用的线程,包括每个线程的栈跟踪信息;