我們都知道,SpringBoot主啟動類標注了@SpringBootApplication
注解,該注解引入了@ComponentScan
注解
所以默認的包掃描規則是,程序會自動掃描主啟動類所在包及其子包
但是在多模塊項目開發中,有時候會遇到這樣的需求:
需要將公共模塊的一個組件加入IOC容器,但是其所在包又不在默認掃描范圍內
解決辦法兩個:
方法1:將公共模塊中的該組件放在默認掃描的包下(包名一樣)
方法2:使用@ComponentScan
額外指定待掃描的包,但是不能用在主啟動類上,因為這樣會覆蓋掉默認的包掃描規則,可以在其他標注了@Configuration
的地方配置@ComponentScan(basePackages = { "xxx.yyy"})
進行額外指定,這樣就能達到效果也不會覆蓋默認的包掃描規則,親試有效。
SpringBoot版本:2.1.4.RELEASE
</div>