运行具有多个主类的 Spring Boot 应用程序

问题描述 投票:0回答:1

我正在将 Spring Boot 与多模块 Maven 项目一起使用,结构如下

项目 - 项目休息控制器 - 项目文件适配器 - 项目库

当project-rest-controller模块包含@RestController并且有一个主Spring Boot类来启动嵌入式tomcat时,控制器将接收一个POST并创建一个请求并将其传递给project-library模块。

此外,项目文件适配器模块包含一个 Spring-Integration 文件适配器,用于提取目录中的文件、读取该文件并创建请求并将其传递给项目库模块。

当我使用 mvn spring-boot:run 从父目录中运行应用程序时,出现异常,应指定主类。

Spring boot 似乎允许通过以下方式指定主类

mvn spring-boot:run -Dstart-class=com.blah.App

但是我有两个主要课程。

我应该启动两个应用程序吗?

来自项目休息控制器的一个 来自项目文件适配器的一个

这将启动两个 JVM,这就是我现在正在尝试做的事情?

maven spring-boot
1个回答
0
投票

在 Spring Boot 3.2 中我们可以使用以下解决方案。

pom.xml

<properties>
    <start-class>org.springframework.boot.loader.launch.PropertiesLauncher</start-class>
</properties>
...
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>${start-class}</mainClass>
    </configuration>
</plugin>

使用动态主类名称运行 jar

java -jar -Dloader.main=com.myapp.Main1 -jar myapp.jar

java -jar -Dloader.main=com.myapp.Main2 -jar myapp.jar
© www.soinside.com 2019 - 2024. All rights reserved.