空白vs Mono< Void>在春天webflux

我最近开始使用响应流开发Spring Webflux应用程序。我有两个问题。

什么是虚空和monovoid>

我有一个像下面这样的用例,我认为可以改进使用void或monod;

 @Service
 public class ABCService {  
   public Mono<String> getGreeting(String name) {
     Mono.just(NameValidator.validate(name))
          .map(isValid -> "Hello, "+name+". Welcome!");
   }
 }
 public class NameValidator {
   public static boolean validate(String name) {
     if(StringUtils.isEmpty(name)) {throw new RuntimeException("Invalid name");}
     return true;
  }
 }

我实际上不需要validate()方法有一个布尔返回类型。它可以是void/ monod;代替。我只返回true在ABCService中执行链接。有人能解释一下如何使用void和monodvoid>

###如果你返回Mono你不能使用map(). I mean you can use it but since Mono<Void> will never emit a value but only 将永远不会发出一个值,但只有一个完成信号你map() will never take effect. You would need to replace it with 永远不会生效。你需要用then():

@Service
public class ABCService {  
  public Mono<String> getGreeting(String name) {
      NameValidator.validate(name)
         .then(Mono.just("Hello, "+name+". Welcome!"));
  }
}
阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码