springboot项目导入外部jar包的bean的几种方式
背景
公司封装了基础包和日志包,将公共的配置抽取出来,供所有项目使用,因此就需要考虑,怎么引入外部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中引入就可以了,无需扫描配置!