我不知道或问这个问题,除了这里,如果不是我道歉的地方。
这里有一个REST请求,它附带了一个简单的bean,其中包含一个列表等属性。对此列表进行迭代,以使用返回Mono(findOne)的响应mongo调用。但我不认为我找到了正确的方法:
@PostMapping
@RequestMapping("/check")
public Mono<ContactCheckResponse> check(@RequestBody List<ContactCheckRequest> list) {
final ContactCheckResponse response = new ContactCheckResponse();
response.setRsnCode("00");
response.setRspnCode("0000");
LOG.debug("o--> person - check {} items", list.size());
final List<ContactCheckResponse.Contact> contacts = new ArrayList<>();
response.setContacts(contacts);
return Mono.fromCallable(() -> {
list.stream().forEach( c -> {
Boolean exists = contactRespository.findOneByThumbprint(c.getIdentifiant()).block() != null;
ContactCheckResponse.Contact responseContact = new ContactCheckResponse.Contact();
responseContact.setExist(exists);
responseContact.setIdentifiant(c.getIdentifiant());
responseContact.setRsnCode("00");
responseContact.setRspnCode("0000");
response.getContacts().add(responseContact);
});
return response;
});
}
在我看来,“反应性”的想法并不是必须做一个块,但我没有找到如何做,否则。
有人能帮我找到做这项任务的最佳方法吗?
大致如下:
return Flux.fromIterable(list)
.flatMap(c -> contactRespository.findOneByThumbprint(c.getIdentifiant())
.map(r -> r != null)
.map(exists -> {
ContactCheckResponse.Contact responseContact = new ContactCheckResponse.Contact();
...
return responseContact;
})
)
.reduce(response, (r,c) -> {
response.getContacts().add(responseContact);
return response;
});
从列表中创建一个flux
,为每个条目创建一个联系人,并将所有内容简化为一个mono
。
我的理解是单声道 我说得对吗? 如果没有,单声道之间的区别是什么
我们使用的是Spring数据,当我们调用时,我们收到的是
我是反应编程(spring webflux)的新手,我想知道如何最好地处理这个用例。我有一个返回Mono的反应服务调用(getAccount),我想将它与另一个返回Mono 的服务调用getBooks和一个执行某种转换并返回类似Mono 的最终同步调用转换链接起来,当getAccount或getBooks返回空时,我如何以Mono 的形式链接并返回转换后的数据?这里是我试图做的一个简化版本,作为一
我正在尝试使用SpringBoot2.0和新的reactive webFlux库。我想知道如何将通过无阻塞WebClient进行的两个调用的结果返回给我的Springboot API的调用者。我的代码是: 然而,如果我这样称呼它,我得到的回应是 而不是SearchResponse对象的内容。我觉得我可能错过了一个基本的点,这是如何工作的!我的想法是,因为WebClient没有阻塞,所以我可以向we
获取所有分支 遍历所有并将其添加到 返回,这是我不确定这样做是否正确的地方。但它起作用了 合并所有列表 我只是困惑,这是在我的上下文中使用的正确方式吗?或者有没有什么更好的方法来实现我正在努力做的事情?
给定以下monos: 双: 和: 具有相同的输出: 和之间有什么区别,在这种情况下? 从https://projectreactor.io/docs/core/release/reference/index.html#which-operator: [如果你]有一个序列,但[你]对值不感兴趣,并且[你]想在最后切换到另一个单声道,[使用]。 [如果您]希望通过将发布者从1个Mono和任何源端协调到