应用场景
多模块设计开发中,spring boot主系统依赖目标模块后,默认扫描Application启动类的同级目录,所以很多时候被依赖模块的bean常常无法创建并自动添加到容器中。下边介绍几种常用的解决方法。
解决方案
1. spring boot启动类的注解,手动添加扫描范围
@SpringBootApplication(scanBasePackages = {"com.simple.common","com.simple.*"})
public class SimpleDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SimpleDemoApplication.class, args);
}
}
可以添加多个包,支持通配符
2. 使用注解@Import手动添加,可以指定多个
@Import({ RSAProperties.class, ApplicationProperties.class})
常和自定义注解@EnableXXX结合使用
3. 使用注解@ComponentScan指定扫描的包
@ComponentScan(basePackages = { "com.simple.common.rabbitmq"})
4. 配置文件手动添加
- 在resources目录下,新建目录
META-INF/spring
- 新建文件
org.springframework.boot.autoconfigure.AutoConfiguration.imports
- 在文件中放入需要注入的文件URL就可以了