Spring Boot是基于Spring框架而衍生出的框架,它主要是为了简化那么Spring Boot提供了哪些能力呢?
-
具备自动化配置能力,并通过starter简化Spring配置及依赖管理
在Spring中,组件需要通过XML文件配置,这是繁琐冗余的一个过程,很多组件的配置往往是相同的,Spring Boot提供了spring-boot-starter-xxx帮助我们引入需要依赖的组件,简化配置,我们可以通过yaml文件(相比properties文件,更适合描述json数据)配置我们需要给出的属性。组件只要提供starter,我们在pom文件引入即可。 -
内置了Undertow、Netty、Tomcat等容器,不用再打war包,可以直接运行服务。
- 提供了健康检查等监控能力
Spring Boot自动化配置
Spring的自动化配置能力主要依赖三个注解:@EnableAutoConfiguration,@Configuration,@ComponentScan。
@Configuration等价于XML配置的Beans,一般用于注解启动类。
@EnableAutoConfiguration根据项目加入的依赖jar包,猜测需要引入的Bean实例,具体原理如下:从classpath中搜索所有META-INF/spring.factories配置文件然后,将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项Bean加载到spring容器。只有配置文件中spring.boot.enableautoconfiguration为true(默认为true)的时候,才启用自动配置。
另外,@EnableAutoConfiguration要和@Configuration一起使用。
ComponentScan用于自动扫描发现组件,扫描到@Component、@Controller、@Service、Repository等注解的类,注册为Bean,结合@Autowired注解导入,即可收集所有的Spring组件。
Spring Boot提供的监控能力
Spring Boot Actuator是spring boot的一个附加功能,可以对应用程序及其生产环境进行监视。
Actuator有2个重要的概念:EndPoint和Indicator。配置EndPoint可以对外提供监控信息,一个EndPoint对应若干个Indicator,通过Indicator获得监控信息。
另外,我们可以定制化已有的或者新的EndPoint和Indicators。
参考文献:
https://www.jianshu.com/p/464d04c36fb1(@EnableAutoConfiguration原理解析)
https://docs.spring.io/spring-boot/docs/2.1.0.M2/reference/htmlsingle/#boot-documentation
(Spring Boot官方文档)
网友评论