Spring Boot 2中EmbeddedServletContainerCustomizer配置会话超时失效
解决Spring Boot 2.x中会话超时配置的问题
嗨,这个问题我升级Spring Boot版本时也碰到过!Spring Boot 2.0+对嵌入式Servlet容器的定制接口做了调整,你之前用的EmbeddedServletContainerCustomizer已经被移除了,取而代之的是WebServerFactoryCustomizer接口,把代码改成下面这样就能正常工作啦:
@Bean public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> webServerFactoryCustomizer() { return factory -> { factory.setSessionTimeout(24, TimeUnit.HOURS); }; }
补充说明:
ConfigurableServletWebServerFactory是通用配置接口,适配Tomcat、Jetty、Undertow等所有Spring Boot支持的嵌入式容器,不用纠结当前用的是哪种容器,这个写法都能生效。- 如果需要对特定容器做更细致的定制(比如Tomcat的线程池、连接数等),可以换成对应容器的专属Factory(比如
TomcatServletWebServerFactory),但仅针对会话超时需求的话,上面的通用写法完全够用。
另外,如果你觉得编程配置麻烦,也可以直接用配置文件实现,更简洁:
# application.properties server.servlet.session.timeout=24h
# application.yml server: servlet: session: timeout: 24h
内容的提问来源于stack exchange,提问作者Arpan Das
相关产品推荐
相关产品推荐

