最近项目需要将两个服务合并为一个,副服务打成jar包由主服务依赖碰到了扫描不到bean的问题
解决方法:使用springboot的自动装配配合@componetScan注解扫描整个第三方jar包
在副服务最外层包创建一个Scanner类,打上@Configuration注解并在resources目录下创建 META-INF\spring.factories 注意META-INF目录也要创建,并输入如下配置
此效果为使副服务中application.yml的自动配置生效
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.zyc.test.Scanner
第二行为Scanner类路径,至此由主服务依赖此jar包便能够注册Scanner类的springbean
进一步注册jar包中的springbean
在Scanner类中打上@ComponentScan注解,便能扫描到Scanner类路径下使用了@computer及其衍生注解的bean
这里要注意的是注册dao层的bean需要额外注解,
Mybatis 需要 @MapperScan,
JPA需要@EntityScan与@EnableJpaRepositories
之后便能在主服务中扫描到所有jar包的springbean了