我们正在使用gradle bootRun
启动Spring Boot应用,该应用会触发具有注释x.Application
的{{1}}类。启动后,我们可以访问@SpringBootApplication
包中的REST服务,但无法访问其他包中的REST服务。如何相应地配置类路径?
答案 0 :(得分:1)
假设您的x
包类似于com.example.mybootapp
且您的主Application.class
位于x
包内,那么您需要添加此
@SpringBootApplication
@ComponentScan({"com.example.mybootapp","com.example.someother","one.more.pack"})
在您的主Application.class
方法或配置文件上。
@SpringBootApplication
本身由@Configuration @EnableAutoConfiguration @ComponentScan
注释组成,因此@ComponentScan
默认basePackge
(即要扫描的包)到主Application.class
的包中这就是为什么Spring无法检测到主包之外的其他@Controlers
。
如果按照上面的建议构建代码(在根包中定位应用程序类),则可以添加@ComponentScan
而不添加任何参数。您的所有应用程序组件(@Component
,@Service
,@Repository
,@Controller
等)都将自动注册为Spring Bean。
请参阅MultiDex NoClassDefFound error了解如何构建代码。