我们正在使用Spring Boot 1.5.9中的下一个接口,没有任何问题:ConfigurableEmbeddedServletContainer
和EmbeddedServletContainerCustomizer
。
我们已升级到Spring Boot 2(2.0.0.M7),并且这些接口不存在。我们认为它们已针对具有相同目的的其他接口进行了修改,但我们不知道它们是什么。
有人可以帮助我们知道如何修改这段代码以获得与Spring 1.5.9中相同的行为吗?
我们的代码是下一个:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() throws FileNotFoundException {
final TomcatConnectorCustomizer customizer = new MyTomcatConnectionCustomizer(absoluteKeystoreFile,
keystoreType, keystorePassword);
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
TomcatEmbeddedServletContainerFactory containerFactory = (TomcatEmbeddedServletContainerFactory) container;
containerFactory.addConnectorCustomizers(customizer);
Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);
connector.setPort(port);
containerFactory.addAdditionalTomcatConnectors(connector);
}
}
};
}
答案 0 :(得分:5)
您需要将ConfigurableServletWebServerFactory
的实现作为bean返回TomcatServletWebServerFactory
@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
final TomcatConnectorCustomizer customizer = new MyTomcatConnectionCustomizer(absoluteKeystoreFile,
keystoreType, keystorePassword);
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers(connector -> {
connector.setPort(port);
}, customizer);
return factory;
}