当前位置: 首页 > 知识库问答 >
问题:

WebFlux:如何提取返回Mono的方法。错误()

丁阳羽
2023-03-14

我有一个很长的方法,其中包含一堆将返回Mono的验证代码。错误()当我们发现无效对象时。

   @Override
    public Mono<Item> update(Request item) {
        return itemRepository.findById(item.getId())
                .switchIfEmpty(Mono.error(new ResponseStatusException())
                .flatMap (item -> {

                    // bunch of validation ifs
                    if (..) {
                        return Mono.error(..);
                    }

                    return itemRepository.update(item);
                });
    }

如何生成和提取这些验证代码。错误我已经尝试了以下方法,但它警告我需要指定Mono

private Mono validate() {
        // bunch of validation ifs
        if (..) {
            return Mono.error(..);
        }
    }

共有1个答案

陈弘厚
2023-03-14

你可以试试

private <R> Mono<R> validate(R itemToValidate) {
        if(...){
            return Mono.error(...);
        }
    }
 类似资料:
  • 我正在我的项目中使用spring webflux。我的controller类调用返回Mono或Flux的服务类方法。 我正在尝试为我的服务类编写单元测试。我不确定如何为返回mono/flux的方法编写单元测试。我查看的大多数文章都建议我使用WebClientTest。但重点是,我在这里测试我的服务类。当我通过模拟服务类方法测试我的web层(控制器类)时,我使用了WebclientTest。 对如何

  • 我很难理解mono 的用法。请问这个Mono 能给Mono带来什么样的好处? 谢谢。

  • block()/blockfirst()/blocklast()正在阻塞,线程反应器-http-nio-2不支持这一点 这是正确的方法吗?还有另一种更好的方法来实现这一点?我也在想一些类似的事情:

  • 我有一个从WSDL生成的接口,所以我不能更改签名。其中一个方法返回

  • 我想在上一次返回

  • 假设我有以下流程 只是为了理解 因此,我有 但我需要 继续皱眉 这个问题有什么好的解决办法吗?