如何在micronaut中注册自定义过滤器?

我正在尝试在micronaut中注册自定义过滤器,但是我没有找到Spring中用于注册自己的过滤器的任何FilterRegistrationBean类。我浏览了micronaut文档,但自定义过滤器没有太多帮助。

https://docs.micronaut.io/latest/guide/index.html#filters

请问有指针吗?

w476226477 回答:如何在micronaut中注册自定义过滤器?

  

我正在尝试在micronaut中注册自定义过滤器,但找不到   我们在Spring中可以使用的任何FilterRegistrationBean类   注册我们自己的过滤器。

它们实际上并不需要注册,至少不需要像Spring那样注册。如果过滤器标有@Filter且位于CLASSPATH上,则会被注册。您链接的文档中的示例之一如下所示:

import io.micronaut.http.*;
import io.micronaut.http.annotation.Filter;
import io.micronaut.http.filter.*;
import org.reactivestreams.Publisher;

@Filter("/hello/**") 
public class TraceFilter implements HttpServerFilter { 
    private final TraceService traceService;

    public TraceFilter(TraceService traceService) { 
        this.traceService = traceService;
    }

    ​@Override
   ​public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request,ServerFilterChain chain) {
       ​return traceService.trace(request)
                          ​.switchMap(aBoolean -> chain.proceed(request))
                          ​.doOnNext(res ->
                               ​res.getHeaders().add("X-Trace-Enabled","true")
                          ​);
   }
}

无需其他步骤即可发挥作用。

我希望有帮助。

本文链接:https://www.f2er.com/3032771.html

大家都在问