@EnableAutoConfiguration注解的实现原理
了解了ImportSelector和ImportBeanDefinitionRegistrar后,對于EnableAutoConfiguration的理解就容易一些了?
它會通過import導入第三方提供的bean的配置類:AutoConfigurationImportSelector@Import(AutoConfigurationImportSelector.class)?
從名字來看,可以猜到它是基于ImportSelector來實現基于動態bean的加載功能。之前我們講過Springboot @Enable*注解的工作原理ImportSelector接口selectImports返回的數組(類的全類名)都會被納入到spring容器中。?
那么可以猜想到這里的實現原理也一定是一樣的,定位到AutoConfigurationImportSelector這個類中的selectImports方法?
本質上來說,其實EnableAutoConfiguration會幫助springboot應用把所有符合@Configuration配置都加載到當前SpringBoot創建的IoC容器,而這里面借助了Spring框架提供的一個工具類SpringFactoriesLoader的支持。以及用到了Spring提供的條件注解@Conditional,選擇性的針對需要加載的bean進行條件過濾?
?
總結
以上是生活随笔為你收集整理的@EnableAutoConfiguration注解的实现原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AutoConfigurationImp
- 下一篇: Spring框架中的SpringFact