背景

公司封装了基础包和日志包,将公共的配置抽取出来,供所有项目使用,因此就需要考虑,怎么引入外部jar包的Bean实例;

思考

因为公司的jar包就是普通的jar,不支持springboot的自动配置(架构师没有写成spring-boot-starter),所以开发时,第一反映就是使用@ComponentScan扫描外部的配置,但是总感觉这种方式不太优雅

解决方式

  1. 针对普通的jar包
  • 直接通过@ComponentScan注解扫描,跟我想的一样,如果只需要使用个别的bean,就单独扫描即可
  • 在jar包中编写@Configuration配置类,然后使用@ConponentScan扫描所有的bean,然后自定义注解,使用@Import({xxx.class})注解导入前面编写的配置类,在项目中使用时,只需要添加自定义注解即可; 这种方式在项目中不用关注jar包的所需要扫描的路径
  1. 针对starter方式的jar包
  • springboot默认启动时,会扫描所有的自动配置类,然后将其加载进来,并注入到IOC容器中,因此只需要制作一个springboot的starter包,在pom中引入就可以了,无需扫描配置!

参考文档:https://www.cnblogs.com/adversary/p/10346278.html