SpringBoot中解决SpringApplication入口和其他Bean不在同属目录下的问题。
工程应用中,一般是SpringApplication入口类main函数与当前工程是在同属的目录接口下,使用注解是可以自动装填其他类,应用可以自行运行,但是有些特殊情况SpringApplication在A包中,其在B中,如,TestApplication在com.example.app中,提供http服务在com.example.controller,提供业务处理的在com.example.service中,配置类在com.example.config中,那正常启动时,无法直接注入装载,这里就有两个解决方案:
1. 将TestApplication变换到com.example包中,其他的保持不变;
2. 在TestApplication增加@SpringBootApplication(scanBasePackages="xxxx")的注解,这里不移动TestApplication时,在上面增加如下的注解说明:
@SpringBootApplication(scanBasePackages = {"com.pml.controller", "com.pml.service", "com.pml.config"})
public class TestApplication {// 获取当前类的logger//private static final Logger logger = LoggerFactory.getLogger(TestApplication.class);public static void main (String[] args) {SpringApplication.run(TestApplication.class, args);}
}
单个时:
@SpringBootApplication(scanBasePackages = "com.pml.controller")
public class TestApplication {// 获取当前类的logger//private static final Logger logger = LoggerFactory.getLogger(TestApplication.class);public static void main (String[] args) {SpringApplication.run(TestApplication.class, args);}
}