springboot配置请求超时时间(Http会话和接口访问)
作者:普通网友
本文主要介绍了springboot配置请求超时时间,包含Http会话和接口访问两种,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1、配置Http会话超时
可以通过两种方式为Spring Boot应用程序配置HTTP会话超时。
1.1 application.properties中配置会话超时
最简单的方法是在你的application.properties中加入参数server.servlet.session.timeout。
server: servlet: session: # 配置会话超时 timeout: 120s
还要注意的是,Tomcat不允许你将超时时间设置得少于60秒。
1.2 以程序方式配置会话超时
假设我们想让我们的HttpSession只持续两分钟。为了实现这一点,我们可以在我们的WebConfiguration类中添加一个EmbeddedServletContainerCustomizerBean,内容如下。
@Configuration public class WebConfiguration { @Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.setSessionTimeout(2, TimeUnit.MINUTES); } }; } }
这里再给出一个使用Java 8和lambda表达式的捷径写法。
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return (ConfigurableEmbeddedServletContainer container) -> { container.setSessionTimeout(2, TimeUnit.MINUTES); }; }
在应用程序启动期间,Spring Boot自动配置检测到EmbeddedServletContainerCustomizer,并调用customize(…)方法,传递对Servlet容器的引用。
2、配置接口访问超时
SpringBoot设置接口访问超时时间有两种方式
2.1 配置文件方式
在配置文件application.properties中加了spring.mvc.async.request-timeout=120000,意思是设置超时时间为120000ms即120s
# [设置接口的超时时间] spring.mvc.async.request-timeout=120000
2.2 配置Config配置类
还有一种就是在config配置类中加入:
public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void configureAsyncSupport(final AsyncSupportConfigurer configurer) { configurer.setDefaultTimeout(20000); configurer.registerCallableInterceptors(timeoutInterceptor()); } @Bean public TimeoutCallableProcessingInterceptor timeoutInterceptor() { return new TimeoutCallableProcessingInterceptor(); } }
到此这篇关于springboot配置请求超时时间(Http会话和接口访问)的文章就介绍到这了,更多相关springboot 请求超时时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!