現象:
我定義了兩個模塊 A 和 B 。B模塊依賴A模塊
A模塊中我定義了一個@Component
卻發現在B模塊中我無法掃描到這個Bean導入注入失敗
解決
查閱得知,在springboot中的bean掃描是掃描同級目錄或者下級目錄,也就是不會掃描到依賴包里面的東西。
但是我又想定義公共Bean,該怎么做呢。
解決辦法
手動注入 @Bean
如果你定義的是實體類之類的Bean,那么可以在子類中手動Bean
@Bean
Result result(){
new Result;
}
配置掃描 @ComponentScan
但是如果你定義的Bean是類似於接口的文件,那你使用手動定義的方法就會發現要寫很長一段,把所有的方法都定義一下。所以還有另一種方法
@SpringBootApplication
@ComponentScan(basePackages = {"cn.o"})
public class ProxyDataSourceApplication {
...main(){
}
}
如果定義了@ComponentScan掃描路徑,注意不要讓@Bean多處定義,否則會報重復注入的錯誤。
