cto*_*mek 2 attributes spring-mvc filter interceptor spring-webflux
在使用 Servlet API 实现拦截器时,我HandlerMethod开箱即用:
... extends HandlerInterceptorAdapter
@Override
public boolean preHandle(final HttpServletRequest request,
final HttpServletResponse response, final Object handlerMethod) throws Exception {
Run Code Online (Sandbox Code Playgroud)
我可以HandlerMethod在实施时访问而WebFilter不是HandlerInterceptorAdapter?
如果WebFilter我有:
... implements WebFilter {
public Mono<Void> filter(ServerWebExchange serverWebExchange, WebFilterChain webFilterChain) {
Run Code Online (Sandbox Code Playgroud)
一旦我可以HandlerMethod通过调用访问serverWebExchange.getAttribute("....bestMatchingHandler"),但它不再起作用了。见相应问题。我的问题是:我怎样才能HandlerMethod不使用serverWebExchange.getAttribute?
我找到了有助于回答我原来问题的答案。HandlerMethod可以这样得到:
(HandlerMethod) this.handlerMapping.getHandler(serverWebExchange).toProcessor().peek();
Run Code Online (Sandbox Code Playgroud)
这里handlerMapping是一个类型的豆RequestMappingHandlerMapping,你可以从WebFlux注入。
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |