Spring factories是Spring Boot中一种很是解耦的扩展机制。这种扩展机制相似Java SPI扩展机制。它在META-INF/spring.factories文件中配置接口的名称,而后在程序中读取这些配置文件并实例化。spring
Spring Boot启动的关键步骤:springboot
1.开始启动接口
2.Environment构建完成。it
3.ApplicationContext构建完成。io
4.ApplicationContext完成加载。class
5.ApplicationContext完成刷新并启动。容器
6.启动完成/失败扩展
spring.factories中经常使用的几种接口。配置
1. org.springframework.boot.SpringApplicationRunListener List
SpringApplicationRunListener 来监听Spring Boot的启动流程,而且在各个流程中处理本身的逻辑。在应用启动时,在Spring容器初始化的各个阶段回调对应的方法。
2. org.springframework.context.ApplicationContextInitializer
ApplicationContextInitializer是在springboot启动过程上下文ConfigurableApplicationContext刷新方法前(refresh)调用,对ConfigurableApplicationContext的实例作进一步的设置或者处理
3.org.springframework.boot.autoconfigure.EnableAutoConfiguration
定义系统自动装配的类
4.org.springframework.boot.env.EnvironmentPostProcessor
配置环境的集中管理。好比扩展去作排除加载系统默认的哪些配置类,方便自定义扩展。