【问题标题】:How subscribe in Webflux without using it?如何在不使用 Webflux 的情况下订阅它?
【发布时间】:2021-12-21 09:17:45
【问题描述】:

我正在使用 WebFlux,我想使用 AOP 登录如下:

Class LogAop {

  @AfterReturning("execution ...")
  public void configSetted() {
     // Getting username by token
     Mono<Sting> username = ReactiveSecurityContextHolder.getContext()
     .map { ... };
    
     username.subscribe ({it -> loggerin.info(it);});

  }
}

在上面的代码中,我想记录用户名,但是没有记录。如何订阅MonoFlux而不返回方法?

注意:有时我想对订阅数据做不同的事情,例如将数据保存在 db 中。

【问题讨论】:

    标签: java spring-boot spring-webflux webflux


    【解决方案1】:

    这应该可以工作,除非ReactiveSecurityContextHolder.getContext() 不发出任何项目。

    Mono<String> username = ReactiveSecurityContextHolder.getContext()
                            .map { ... };
    username.subscribe (it -> loggerin.info(it));
    

    我建议添加一个日志来找出:

    username.log().subscribe (it -> loggerin.info(it));
    

    【讨论】:

    • 它没有记录内容。
    • @MortezaMalvandi 输出是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多