我正在尝试在micronaut
中注册自定义过滤器,但是我没有找到Spring中用于注册自己的过滤器的任何FilterRegistrationBean
类。我浏览了micronaut
文档,但自定义过滤器没有太多帮助。
https://docs.micronaut.io/latest/guide/index.html#filters
请问有指针吗?
我正在尝试在micronaut
中注册自定义过滤器,但是我没有找到Spring中用于注册自己的过滤器的任何FilterRegistrationBean
类。我浏览了micronaut
文档,但自定义过滤器没有太多帮助。
https://docs.micronaut.io/latest/guide/index.html#filters
请问有指针吗?
我正在尝试在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")
);
}
}
无需其他步骤即可发挥作用。
我希望有帮助。