SpringBoot:从@RequestMapping控制Async行为类似于AsyncWebServlet吗?

时间:2019-02-22 19:45:59

标签: java spring-boot asynchronous servlets spring-restcontroller

我正在使用Spring Boot 2,并且希望异步处理我的请求。

在Java EE中,可以像本link中那样对异步Servlet使用异步处理。以下是一个相关示例:

Error

并且上面允许使用AsyncContext。

但是在Spring Boot中,我有以下@WebServlet(urlPatterns={"/asyncservlet"}, asyncSupported=true) public class AsyncServlet extends HttpServlet { ... } 。如何使其在异步模式下处理请求并还支持AsyncContext?如何利用异步Web Servlet?

@RequestMapping

}

请注意,返回@RestController public class myRestController { @RequestMapping("{resource}/**") public void resourceRequest (@PathVariable("resource") String resource) { // example: // ... some long running calls such as database communication // ... convert request through AsyncContext ctx = req.startAsync(); // etc } 是有意的。

我发现以下这样的答案How to register a servlet with enabled "async-supported" in Spring-Boot?表示:“ Spring Boot将自动在您的应用程序上下文中向Servlet容器注册任何Servlet Bean。默认情况下,将async支持设置为true,因此您无须做任何其他事情为您的Servlet创建一个bean。”但是我在程序中的任何地方都没有使用任何void注释,仅使用了@WebServlet注释。那么如何确保我从@RestController选项中受益呢?

0 个答案:

没有答案