【问题标题】:How to Manage Multiple Spring Boot in the same project如何在同一个项目中管理多个 Spring Boot
【发布时间】:2017-02-02 12:10:57
【问题描述】:

学习 Spring Boot 作为某些 C/C++ 守护程序的替代品。我的目标是将单个项目编译为单个 jar/war。然后使用多个 shell 脚本通过命令行简单地启动我想要的一个。我正在使用 Eclipse Kepler 开发和测试单个 Spring Boot 应用程序,并注意到了一个不需要的行为。在同一个包中有 4 个 Spring Boot 应用程序类,如果我使用 Eclipse 启动配置启动其中任何一个,所有 4 个都在同一个 Spring Boot 中启动。我怀疑是因为它们都有@SpringBootApplication 注解,并且启动一个会导致Spring Boot“扫描”当前包和子包。

我的问题,有没有办法在同一个包中拥有多个 Spring Boot 应用程序?我是否只需使用单个 @SpringBootApplication 创建一个 ControllerApplication 并传入我想要启动并从那里开始的守护进程名称?还是其他一些选择?还是我需要为每个守护进程创建一个单独的项目?蒂亚,阿迪姆

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    您可以使用 @ComponentScan's excludeFilters 注释您的 Spring Boot 应用程序

    @ComponentScan(basePackages = "your.package", 
                   excludeFilters = @Filter(SpringBootApplication.class)) 
    

    从现在开始你可能会遇到很多依赖问题,你可以用同样的原理解决它们。

    然而

    这可能在您的 IDE 中工作,但生成的 spring boot jar 将只有一个主类属性。 因此,即使您找到解决方法,我相信您也应该:

    • 将每个 Spring Boot 应用程序打包到自己的 maven 项目中;
    • 或者有一个带有多个 Spring 配置文件的 Spring Boot 应用程序。

    看看这些其他答案以启动您的具有多个弹簧配置文件的弹簧启动应用程序:

    【讨论】:

    • 谢谢亚历克斯!我认为为了简单起见,我将在每个 Spring Boot 应用程序中使用单独的项目。
    猜你喜欢
    • 2016-02-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2018-10-08
    • 2022-01-25
    • 1970-01-01
    • 2023-01-17
    相关资源
    最近更新 更多