4

如何让 Spring Boot Web 应用程序在多个端口上运行?例如 8080 和 80
我怎样才能做到这一点?
应用程序属性

server.port=8080, 80
4

1 回答 1

5

您可以添加侦听器,而不是运行多个应用程序。例如,如果您使用 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

于 2018-08-16T12:05:40.893 回答