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

时间:2014-04-10 17:55:55

标签: java spring spring-boot

我有一个使用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)
    }
}

什么有效:我的后台应用程序可以访问我需要的所有内容。春季服务,豆类等 问题:后台应用程序启动GUI,阻止我同时启动它两次。

有没有办法停用嵌入式tomcat服务器的启动? 否则,是否有办法以另一种不启动嵌入式服务器的方式加载spring应用程序上下文?

一些细节: *我没有使用mvn spring-boot:run启动应用程序。我直接使用java(或使用eclipse

)启动类

1 个答案:

答案 0 :(得分:11)

SpringApplication有一个属性webEnvironment。如果Tomcat在类路径上,则默认为true,但您可以将其设置为false(以编程方式或使用spring.main.webEnvironment)。