Spring Boot 多端口?

4
我如何让一个Spring Boot网页应用程序在多个端口上运行? 例如:8080和80
我该如何实现这一目标?
application.properties
server.port=8080, 80

一个(spring boot)应用程序只监听一个端口。如果您想让Spring Boot 应用程序监听2个端口,请分别使用server.port = 8080和server.port = 80启动两个实例,即使用不同的application.properties文件。 - Luke Kroon
这个问题在另一个帖子中已经讨论过了。 - Karmakulov Kirill
2个回答

6

与其运行多个应用程序,您可以添加监听器。例如,如果您使用undertow:

@Configuration
public class PortConfig {

    @Value("${server.http.port}")
    private int httpPort;

    @Bean
    public UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory() {
        UndertowEmbeddedServletContainerFactory factory = new UndertowEmbeddedServletContainerFactory();
        factory.addBuilderCustomizers(new UndertowBuilderCustomizer() {

            @Override
            public void customize(Undertow.Builder builder) {
                builder.addHttpListener(httpPort, "0.0.0.0");
            }

        });
        return factory;
    }
}

我已经使用这个来监听http端口和https端口。
对于Tomcat,您会找到相同类型的配置: https://docs.spring.io/spring-boot/docs/1.2.1.RELEASE/api/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.html

这里讨论了:https://dev59.com/GVoV5IYBdhLWcg3wXNs9#69190413 - Karmakulov Kirill

0

您可以使用以下命令运行它:

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8080

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8081

只需更改端口号并在另一个终端上运行即可。同时,您可以运行同一Spring Boot应用程序的多个实例。

现在,一个Spring Boot应用程序在2个端口上运行,一个在8080上,另一个在8081上。


2
问题是关于在单个应用程序中运行多个端口。 - krishna T
这些命令也可以在多个端口上运行单个应用程序 @krishnaTelgave - Maninder
1
这两个命令必须分别运行,因此将作为两个不同的应用程序运行。 - krishna T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接