背景
公司封裝了基礎包和日志包,將公共的配置抽取出來,供所有項目使用,因此就需要考慮,怎么引入外部jar包的Bean實例;
思考
因為公司的jar包就是普通的jar,不支持springboot的自動配置(架構師沒有寫成spring-boot-starter),所以開發時,第一反映就是使用@ComponentScan掃描外部的配置,但是總感覺這種方式不太優雅
解決方式
- 針對普通的jar包
- 直接通過@ComponentScan注解掃描,跟我想的一樣,如果只需要使用個別的bean,就單獨掃描即可
- 在jar包中編寫@Configuration配置類,然后使用@ConponentScan掃描所有的bean,然后自定義注解,使用@Import({xxx.class})注解導入前面編寫的配置類,在項目中使用時,只需要添加自定義注解即可; 這種方式在項目中不用關注jar包的所需要掃描的路徑
- 針對starter方式的jar包
- springboot默認啟動時,會掃描所有的自動配置類,然后將其加載進來,並注入到IOC容器中,因此只需要制作一個springboot的starter包,在pom中引入就可以了,無需掃描配置!