在同一服务器上运行serveral SpringBootApplications

时间:2019-04-25 15:31:24

标签: spring-boot tomcat server

我们有几个用@SpringBootApplication注释的类,我们想在同一个机器上同时运行它们。我们如何配置Spring,以使它们之间的交互作用尽可能小?

我们认为问题特别归结于Spring如何设置tomcat,因为我们花时间排除了其他实现细节。具体来说,两个应用程序都访问同一端口似乎会引起问题。

@SpringBootApplication
@ComponentScan
public class ServerA {
    public static void main(String[] args) { 
        final ConfigurableApplicationContext context = SpringApplication.run(ServerA.class,args);
        ...
}

2 个答案:

答案 0 :(得分:0)

您可以通过在apps.properties文件中添加端口号来运行多个Spring Boot应用程序。将端口号添加到每个属性文件。不要重复端口号。

server.port = 8081

答案 1 :(得分:0)

仅构建一个jar文件,并通过传递端口运行时来运行具有不同端口的同一jar。

例如:

java -jar app.jar --server.port=9000
java -jar app.jar --server.port=9001
java -jar app.jar --server.port=9002

--server.portspring docs的建议方式,您也可以使用-Dserver.port=9000传递参数。