碼上快樂
1秒登錄
首頁
榜單
標簽
關於
搜索
相關內容
簡體
繁體
SpringBoot高級-自動配置之@EnableAutoConfiguration注解
本文轉載自
查看原文
2020-10-10 14:42
800
前言:通過之前的自動配置原理相關介紹的文章,我們對自動配置的流程大概都很清楚了,這里我們對 @EnableAutoConfiguration 注解的實現流程進行跟蹤,發掘源碼中實現的原理。
一、查看@EnableAutoConfiguration 注解的定義
二、查看@Import導入的ImportSelector接口實現類 AutoConfigurationImportSelector
三、查看實現類 AutoConfigurationImportSelector 的 selectImports() 方法
四、查看 selectImports() 方法,發現其調用了 getAutoConfigurationEntry() 方法
五、查看 getAutoConfigurationEntry() 方法, 發現其調用了 getCandidateConfigurations() 方法
六、查看 getCandidateConfigurations() 方法
斷點調試,發現list對象configurations會有117個元素,這些元素就是Bean對象的全限定類名,通過對象的全限定類名將Bean初始化到IOC容器中
在斷言中,有一段提示信息"No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct."
找到 spring.factories 文件的位置
打開該文件,注意“\”的使用說明。列表中,就有我們熟悉 RestTemplateAutoConfiguration、EmbeddedWebServerFactoryCustomizerAutoConfiguration 等自動配置類
最后,打開一個EmbeddedWebServerFactoryCustomizerAutoConfiguration 看一看
小結:雖然由於@EnableAutoConfiguration 注解的使用,初始化了spring.factories文件列表中的配置類,但是這些配置類中,使用了Condition條件,必須滿足Condition條件,才能最終將Bean初始化。
×
免責聲明!
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。
猜您在找
SpringBoot高級-自動配置之@Import注解
SpringBoot高級-自動配置之Enable*注解原理
SpringBoot自動化配置之二:自動配置(AutoConfigure)原理、EnableAutoConfiguration、condition
01.springboot入門--啟用自動配置注解EnableAutoConfiguration
SpringBoot高級-自動配置之自定義starter
SpringBoot高級-自動配置之切換內置web服務器
【玩轉SpringBoot】用好條件相關注解,開啟自動配置之門
SpringBoot 自動配置之Spring Data JPA
@EnableAutoConfiguration自動配置原理分析
SpringBoot中@EnableAutoConfiguration注解用法收集
粵ICP備18138465號
© 2018-2025 CODEPRJ.COM