我正在使用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
选项中受益呢?