0%

定制化tomcat

定制化tomcat

springboot中是集成了tomcat容器的,如何定制化内置的tomcat呢?springboot提供了定制化的接口

在1.5.x版本中使用的是EmbeddedServletContainerCustomizer接口来进行定制化的

1
2
3
4
5
6
7
8
public class MyTomcatCustomizer implements EmbeddedServletContainerCustomizer {

@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory) container;
factory.setSessionTimeout(5000);
}
}

而升级到springboot2.x的时候发现报错了,这个接口不存在了,springboot2.x中使用WebServerFactoryCustomizer接口进行替换的

1
2
3
4
5
6
7
public class MyTomcatCustomizer implements WebServerFactoryCustomizer {
@Override
public void customize(WebServerFactory factory) {
TomcatServletWebServerFactory tomcatFactory = (TomcatServletWebServerFactory) factory;
tomcatFactory.setUriEncoding(StandardCharsets.UTF_8);
}
}