spring boot 2.0在多个端口上侦听

Red*_*nda 13 spring tomcat spring-boot

我需要在嵌入式tomcat中监听2个端口 - 比方说8443(https)和8081(http).

随着春季靴子,1.5.3.RELEASE我做了类似的事情:

@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            if (container instanceof TomcatEmbeddedServletContainerFactory) {
                TomcatEmbeddedServletContainerFactory containerFactory =
                        (TomcatEmbeddedServletContainerFactory) container;

                Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);
                connector.setPort(httpPort);
                containerFactory.addAdditionalTomcatConnectors(connector);
            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

这很好.现在我正在尝试使用,spring-boot-starter-parent 2.0.0.M6并且找不到以下类:

org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory

所以我正在寻找一种方法来接受多个端口上的连接.我怎样才能做到这一点?

Mar*_*rin 16

Spring Boot 2.0.0 M1 发行说明指出:

嵌入式容器包结构已经被非常广泛地重构.EmbeddedServletContainer已重命名为WebServer,org.springframework.boot.context.embedded包已重新定位到org.springframework.boot.web.embedded.例如,如果使用TomcatEmbeddedServletContainerFactory回调接口自定义嵌入式Tomcat容器,则现在应该使用TomcatServletWebServerFactory.

从Spring Boot源代码开始,以commit 67556ba8ea开头:

org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer 被搬到了 org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory

org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer被搬到了 org.springframework.boot.web.server.WebServerFactoryCustomizer

org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory 被搬到了 org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory