Spring Boot 2中的EmbeddedServletContainerCustomizer和ConfigurableEmbeddedServletContainer

Ivá*_*ván 12 spring spring-boot

我们正在使用Spring Boot 1.5.9中的下一个接口,工作没有任何问题:ConfigurableEmbeddedServletContainerEmbeddedServletContainerCustomizer.

我们已升级到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);

            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

sha*_*zin 6

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;
}
Run Code Online (Sandbox Code Playgroud)