繁体   English   中英

如何在没有嵌入式tomcat的情况下启动Spring Boot应用程序?

[英]How do I launch a Spring Boot application without the embedded tomcat?

我有一个使用jhipster生成的Spring Boot应用程序,它运行正常。 但是,我还需要为某些后台批处理作业创建第二个应用程序,并且此应用程序使用第一个应用程序的大多数spring服务。 我所做的是创建第二个主类,它启动一个Spring启动应用程序。 问题是这也启动了嵌入式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 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM