Java 异步响应servlet_Spring Boot实现异步请求(Servlet 3.0)

在spring 3.2 及以后版本中增加了对请求的异步处理,旨在提高请求的处理速度降低服务性能消耗。在我们的请求中做了耗时处理,当并发请求的情况下,为了避免web server的连接池被长期占用而引起性能问题,调用后生成一个非web的服务线程来处理,增加web服务器的吞吐量。为此 Servlet 3.0 新增了请求的异步处理,Spring 也在此基础上做了封装处理。本文还是以代码例子的方式说明如何...
摘要由CSDN通过智能技术生成

在spring 3.2 及以后版本中增加了对请求的异步处理,旨在提高请求的处理速度降低服务性能消耗。

在我们的请求中做了耗时处理,当并发请求的情况下,为了避免web server的连接池被长期占用而引起性能问题,调用后生成一个非web的服务线程来处理,增加web服务器的吞吐量。

为此 Servlet 3.0 新增了请求的异步处理,Spring 也在此基础上做了封装处理。

本文还是以代码例子的方式说明如何在 Spring Boot 中应用异步请求。

首先说一下几个要点:

1、@WebFilter 和 @WebServlet 注解中的 asyncSupported = true 属性

异步处理的servlet若存在过滤器,则过滤器的注解@WebFilter应设置asyncSupported=true,

否则会报错 A filter or servlet of the current chain does not support asynchronous operations.

2、@EnableAsync 注解

Spring Boot 默认添加了一些拦截 /* 的过滤器,因为 /* 会拦截所有请求,按理说我们也要设置 asyncSupported=true 属性。因为这些过滤器都是 Spring Boot 初始化的,所以它提供了 @EnableAsync 注解来统一配置,该注解只针对 “非 @WebFilter 和 @WebServlet 注解的有效”,所以我们自己定义的 Filter 还是需要自己配置 asyncSupported=true 的。

3、AsyncContext 对象

获取一个异步请求的上下文对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值