Spring Boot 2.0在多个端口上侦听 [英] spring boot 2.0 listening on multiple ports
问题描述
我需要在嵌入式tomcat中监听2个端口-比方说8443(https)和8081(http).
I need to have 2 ports listening in embedded tomcat - lets say 8443 (https) and 8081 (http).
使用弹簧靴1.5.3.RELEASE
时,我做了类似的事情:
With spring boot 1.5.3.RELEASE
I did something like:
@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);
}
}
};
}
很好.现在,我正在尝试使用spring-boot-starter-parent
2.0.0.M6
,并且找不到以下类:
And it was fine. Now I'm trying to use spring-boot-starter-parent
2.0.0.M6
and the following classes cannot be found:
org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer
org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer
org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory
所以我正在寻找一种接受多个端口上的连接的方法.我该怎么办?
So I'm looking for a way to accept connections on multiple ports. How can I do that?
推荐答案
Spring Boot 2.0.0 M1 release notes state that:
嵌入式容器的包装结构已经相当重构 广泛地. EmbeddedServletContainer已重命名为WebServer 并且org.springframework.boot.context.embedded包已经被 重新定位到org.springframework.boot.web.embedded.例如,如果 您正在使用来定制嵌入式Tomcat容器 TomcatEmbeddedServletContainerFactory回调接口,应该 现在使用TomcatServletWebServerFactory.
the embedded containers package structure has been refactored quite extensively. EmbeddedServletContainer has been renamed to WebServer and the org.springframework.boot.context.embedded package has been relocated to org.springframework.boot.web.embedded. For instance, if you were customizing the embedded Tomcat container using the TomcatEmbeddedServletContainerFactory callback interface, you should now use TomcatServletWebServerFactory.
从Spring Boot源代码开始,从commit 67556ba8ea 开始:
From the Spring Boot source code, starting with 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
这篇关于Spring Boot 2.0在多个端口上侦听的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!