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

时间:2016-09-24 21:09:23

标签: spring-boot

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

1 个答案:

答案 0 :(得分:7)

您可以使用@ComponentScan's excludeFilters

注释Spring Boot应用程序
@ComponentScan(basePackages = "your.package", 
               excludeFilters = @Filter(SpringBootApplication.class)) 

从这一点开始,您可能会遇到很多依赖性问题,您可以使用相同的原则解决它们。

然而

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

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

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