gpt4 book ai didi

spring-boot - 如何在同一个项目中管理多个 Spring Boot

转载 作者:行者123 更新时间:2023-12-04 02:36:32 24 4
gpt4 key购买 nike

学习 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 并传入我想要启动并从那里开始的守护进程名称?或者其他一些选择?还是我需要为每个守护进程创建一个单独的项目?蒂亚,阿德姆

最佳答案

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

@ComponentScan(basePackages = "your.package", 
excludeFilters = @Filter(SpringBootApplication.class))
从这一点开始,您可能会遇到许多依赖性问题,您可以使用相同的原则解决它们。
然而
这可能在您的 IDE 中工作,但生成的 Spring Boot jar 将只有一个主类属性。
因此,即使您找到了解决方法,我相信您也应该:
  • 将每个 spring boot 应用程序打包在自己的 maven 项目中;
  • 或者有一个带有多个 Spring 配置文件的 Spring Boot 应用程序。

  • 看看这些其他答案,以使用多个 spring 配置文件启动您的 spring 启动应用程序:
  • spring boot - launch a server and a client
  • spring boot - launch twice with different ports
  • 关于spring-boot - 如何在同一个项目中管理多个 Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39680990/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com