Maven项目中有多个带有 @SpringBootApplication注解的类
我正在开发一个多模块的Spring Boot项目。
应用程序包含两个标注着 @SpringBootApplication 的类:
@SpringBootApplication
public class OrganigramaApplication {
public static void main(String[] args) {
SpringApplication.run(OrganigramaApplication.class, args);
}
}
和
@SpringBootApplication
public class TreeAppApplication {
public static void main(String[] args) {
SpringApplication.run(TreeAppApplication.class, args);
}
}
运行时:
mvn spring-boot:run
我遇到了如下错误:
Unable to find a single main class from the following candidates
我理解Spring Boot会发现多个入口点,但我不确定在多模块架构中哪些被认为是最佳实践。
我已经尝试过:
- 从Eclipse运行应用程序。
- 直接执行插件。
- 验证包扫描配置。
在Maven多模块项目中,如何处理多个 @SpringBootApplication 类才是推荐的方法?
解决方案
问题是什么?
正如你所说,Spring Boot会发现多个入口点,因此它无法确定哪个才是正确的入口点,从而无法启动应用。
解决方案
你需要只有一个入口点,这意味着你的应用只有一个带有 @SpringBootApplication 的类。在多模块项目中,我们通常只有一个main方法来加载整个应用及其他模块。要实现这一点,通常会创建一个专门的模块,该模块包含main方法。
这篇 artile 解释了如何创建多模块项目,此外这个 repository 是一个很好的示例。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。