Spring boot WebFlux:WebFilter 不起作用

php小编香蕉介绍,spring boot webflux是一种基于响应式编程的web框架,提供了一种异步非阻塞的方式处理http请求。然而,有时候我们可能会遇到webfilter不起作用的问题。webfilter是用于在请求进入web应用程序之前或之后执行某些操作的组件。本文将探讨可能导致webfilter不起作用的原因,并提供解决方案,以确保webfilter在spring boot webflux中正常工作。

问题内容

我有下面的控制器,它返回字符串的 mono

@restcontroller@requestmapping("api/v1/test")public class testcontroller {    @postmapping    public mono getdraft() {        return mono.just("ok");    }}

登录后复制

我添加了bean webfilter来在请求到来时进行一些处理,问题是bean中的消息没有显示在控制台中,我尝试添加断点来调试,但是当我测试api时却没有停在断点处。在 actuator/beans 中,我找到了 bean slf4jmdcfilter。还有另一个配置要添加吗?

@Configurationpublic class WebConfig {    public static final String TRX_ID = "transactionId";    public static final String PATH_URI = "pathUri";    @Bean    @Order(Ordered.HIGHEST_PRECEDENCE)    WebFilter slf4jMdcFilter() {        return (exchange, chain) -> {            System.out.println("Filtering request");            String requestId = exchange.getRequest().getId();            return chain.filter(exchange)                    .contextWrite(Context.of(TRX_ID, requestId)                            .put(PATH_URI, exchange.getRequest().getPath()));        };    }}

登录后复制

解决方法

这可以通过使用 defercontextual(function)& transformdeferredcontextual(bifunction)

@Componentpublic class YourFilter implements WebFilter {  @Override  public Mono filter(ServerWebExchange exchange, WebFilterChain chain) {    return Mono.deferContextual(contextView -> chain.filter(exchange)        .contextWrite(context -> context.put("KEY", "VALUE")));  }}// controller @Override  public Mono testApi(ServerWebExchange exchange) {    return Mono.just("OK")        .transformDeferredContextual((data, context) -> {          log.info("context is {}", (Object) context.get("KEY"));          return data;        });  }

登录后复制

以上就是Spring boot WebFlux:WebFilter 不起作用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2621982.html

(0)
上一篇 2025年3月6日 23:42:00
下一篇 2025年3月6日 23:42:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论