gpt4 book ai didi

javax servlet 过滤器不适用于 Mono react 器

转载 作者:行者123 更新时间:2023-12-01 17:18:34 25 4
gpt4 key购买 nike

嗨,我创建了一个 Spring Boot 应用程序,在其中使用 Mono 响应式(Reactive)。现在我想在请求之前和之后进行一些日志记录。为此,我使用 javax.servelet.filter 像这样

@Component
@Order(1)
public class RequestLoggingFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest= (HttpServletRequest) request;
HttpServletResponse httpRespnse = (HttpServletResponse) response;

new CustomLogger().getColorLogger().info("dsfsdfsf");
chain.doFilter(request, response);
new CustomLogger().getColorLogger().info("sdfsdfsfsdf");
}
}

但是两个日志同时打印......然后我的执行开始。我不知道我做错了什么。谁能帮我吗?

最佳答案

我假设您在这里使用Spring Webflux。 Spring webflux自带了自己的过滤机制。

您可以使用org.springframework.web.server.WebFilter

示例

@Component
public class DemoFilter implements WebFilter {

@Override
public Mono<Void> filter(ServerWebExchange serverWebExchange,
WebFilterChain webFilterChain) {

// filter logic here.
return webFilterChain.filter(serverWebExchange);
}
}

关于javax servlet 过滤器不适用于 Mono react 器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61342832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com