我有一个使用jhipster生成的Spring Boot应用程序,它工作正常。但是,我还需要为某些后台批处理作业创建第二个应用程序,并且该应用程序使用第一个应用程序的大部分spring服务。我所做的是创建第二个主类,它启动了一个Spring Boot应用程序。问题在于这还会启动嵌入式Web服务器以及仅对Web应用有用的所有服务。我只需要与GUI无关的服务,持久性和其他类。
这是我的两个主要班级(简化版)
正常的Spring Boot应用程序:
@ComponentScan @AutoConfigure class Application { public static void main(String[] args) { SpringApplication app = new SpringApplication(Application.class) app.run(args) } }
后台应用程序:
@ComponentScan @AutoConfigure class BackOfficeApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(BackOfficeApplication.class) app.run(args) } }
什么有效:我的后台应用程序可以访问我需要的所有内容。Spring服务,Bean等。问题:后台应用程序启动GUI,阻止我同时启动两次。
有没有办法停用嵌入式tomcat服务器的启动?否则,有没有办法以不会启动嵌入式服务器的另一种方式加载spring应用程序上下文?
一些细节:*我不使用mvn spring-boot:run启动应用程序。我直接使用Java(或使用eclipse)启动课程
SpringApplication有财产webEnvironment。如果Tomcat在类路径上,则默认为true,但您可以将其设置为false(以编程方式或使用spring.main.webEnvironment)。
SpringApplication
webEnvironment
spring.main.webEnvironment