定製自己的springBoot的starter步驟
1.編寫一個帶有@Configuration註解的類,如果按條件加載可以加上@ConditionalOnClass或@ConditionalOnBean註解
2.在classpath下創建META-INF/spring.factories文件,並在spring.factories中添加
org.springframework.boot.autoconfigure.EnableAutoConfiguretion =\ 上面定義類的全類名
自動裝載的配置的原理
1.SpringApplication註冊
ConfigurationClassPostProcessor用於解析配置類,下面為註冊的主要過程:
AnnotationConfigUtils註冊
ConfigurationClassPostProcessor的
registerAnnotationConfigProcessors方法部分代碼示例
註冊
ConfigurationClassPostProcessor類的時序圖
2.加載解析META-INF/spring.factories下的類為 BeanDefinition的時序圖
加載功能的實現主要得益於
ConfigurationClassPostProcessor 是實現了
BeanDefinitionRegistryPostProcessor,所以在
AbstractApplicationContext中調用
postProcessBeanDefinitionRegistry時會調用到
ConfigurationClassPostProcessor,從在在這裡開始對META-INF/spring.factories配置的類的進行解析並將它們變為BeanDefinition對象
加載META-INF/spring.factories的主要代碼
Mybatis的starter自動裝配實現
1.編寫一個帶有@Configuration註解的類
Mybatis部分代碼展示
2.在classpath下創建META-INF/spring.factories文件
# Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration
最後展示一下mybatis的結構圖