springboot 無法掃描到父類模塊中的Bean


現象:

我定義了兩個模塊 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多處定義,否則會報重復注入的錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM