想成為攻城師的筱筱
2018-09-04 11:17:17
之前學習了如何使用SpringBoot,但是未曾深入去了解它的各項配置原理等等。于是最近就開始了學習SpringBoot的配置等原理。在學習的過程當中,遇到如下的疑惑,希望有大神可以指導解決一下,非常感謝。問題:在SpringBoot框架的主程序類中的@SpringBootApplication,點擊進入SpringBootApplication,再進入其中的@EnableAutoConfiguration注解,為什么我這里給Spring容器導入的組件是AutoConfigurationImportSelector而不是EnableAutoConfigurationImportSelector呢?我現在只知道EnableAutoConfigurationImportSelector是繼承的AutoConfigurationImportSelector,并且他的作用是可以幫助SpringBoot應用將所有符合條件的@Configuration配置都加載到當前SpringBoot創(chuàng)建并使用的IoC容器。求大神大神解答一下,希望可以一并講解一下EnableAutoConfigurationImportSelector與AutoConfigurationImportSelector的異同,謝謝!
2 回答

哈哈吧
TA貢獻13條經驗 獲得超3個贊
先說結論:EnableAutoConfigurationImportSelector和AutoConfigurationImportSelector就功能上來說沒什么差異,都是spring1.3帶入的ImportSelector,而且EnableAutoConfigurationImportSelector本身也是繼承AutoConfigurationImportSelector的,只是enable查看其是否為自定義導入的,而auto為自動導入的
現在EnableAutoConfigurationImportSelector已經不被推薦使用了,在springboot1.x以及spring4.x都還是使用EnableAutoConfigurationImportSelector,而springboot2.x和spring5都采用了AutoConfigurationImportSelector
如果看過cloud會發(fā)現很多@Enable系列,可能spring官方的意思更多的是希望利用start模式去方便擴充更多自定義的組件,故有很多三方的Enable,而自動導入則升級為核心包的一個默認功能吧
點擊展開后面1條
添加回答
舉報
0/150
提交
取消