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

lin*_*dym 3 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

ale*_*xbt 9

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

@ComponentScan(basePackages = "your.package", 
               excludeFilters = @Filter(SpringBootApplication.class)) 
Run Code Online (Sandbox Code Playgroud)

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

然而

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

  • 将每个Spring引导应用程序打包在自己的maven项目中;
  • 或者有一个具有多个Spring配置文件的Spring Boot应用程序.

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