@EnableAutoConfiguration作用就是從classpath中搜尋所有的META-INF/spring.factories配置文件,并將其中EnableAutoConfiguration對應(yīng)的配置項通過反射(Java Refletion)實例化為對應(yīng)的標(biāo)注了@Configuration的JavaConfig形式的IoC容器配置類,然后匯總為一個并加載到IoC容器。這些功能配置類要生效的話,會去classpath中找是否有該類的依賴類(也就是pom.xml必須有對應(yīng)功能的jar包才行)并且配置類里面注入了默認(rèn)屬性值類,功能類可以引用并賦默認(rèn)值。生成功能類的原則是自定義優(yōu)先,沒有自定義時才會使用自動裝配類。
所以功能類能生效需要的條件:(1)spring.factories里面有這個類的配置類(一個配置類可以創(chuàng)建多個圍繞該功能的依賴類)(2)pom.xml里面需要有對應(yīng)的jar包