新搭建的项目用到了Mono,第一次碰到。这是什么?搜索出来一堆文章,以往使用场景就是消息订阅。可以看这篇文章Mono入门。
它属于Reactor(响应式编程),可以适用观察者模式任何场景,与lamda一起使用,不局限消息订阅场景。比如,我们项目用它获取token。
private Mono<Customer> getCustomer(HttpHeaders headers, String authorization,
String tenant) {
String userToken = StringUtils.defaultIfBlank(headers.getFirst("test-user-token"),
authorization);
return Mono.fromSupplier(() -> {
if (StringUtils.isBlank(userToken)) {
return userTokenHelper.visitorLogin(null);
}
return userTokenHelper.getCustomer(userToken, tenant);
});
}