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
配置環境的集中管理。好比擴展去作排除加載系統默認的哪些配置類,方便自定義擴展。