Spring factories是Spring Boot中一种非常解耦的扩展机制。这种扩展机制类似Java SPI扩展机制。它在META-INF/spring.factories文件中配置接口的名称,然后在程序中读取这些配置文件并实例化。
Spring Boot启动的关键步骤:
1.开始启动
2.Environment构建完成。
3.ApplicationContext构建完成。
4.ApplicationContext完成加载。
5.ApplicationContext完成刷新并启动。
6.启动完成/失败
spring.factories中常用的几种接口。
1. org.springframework.boot.SpringApplicationRunListener
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
配置环境的集中管理。比如扩展去做排除加载系统默认的哪些配置类,方便自定义扩展。