我知道在Springboot中 Controller 中的方法可以通过对它们的@Async
注释和CompletableFuture<T>
作为其返回类型的帮助而异步进行,但是可以类似在Spring 过滤器中实现?
在过滤器中,我们需要实现doFilter
方法,该方法返回一个void。有什么办法可以使其异步?
非常感谢链接到任何资源。
答案 0 :(得分:0)
不可能。 Spring Security的过滤器是责任链模式的实现。
https://spring.io/guides/topicals/spring-security-architecture / 网络安全
一个servlet最多只能处理一个请求,但过滤器会形成一个 链,因此它们是有序的,实际上,过滤器可以否决其他 链,如果它想处理请求本身。过滤器也可以 修改下游过滤器中使用的请求和/或响应 和servlet。
由于每个过滤器都可以修改/拒绝请求,而且它们是有序的,因此必须顺序进行过滤器链的处理。
另一方面,如果您确实要进行异步处理,则可以通过派生/加入过滤器中的线程来完成。