Spring boot 弹簧反应堆连接2单体
我需要使用SpringReactor以反应式方式连接到数据库。 下面是我想要得到的场景->Spring boot 弹簧反应堆连接2单体,spring-boot,project-reactor,reactor,Spring Boot,Project Reactor,Reactor,我需要使用SpringReactor以反应式方式连接到数据库。 下面是我想要得到的场景-> 1.连接到数据库并获取响应1 2.然后连接到db,在提供response1.parameter的同时获取response2 将这两个连接到单个响应中,并以字符串形式发送回用户 由于所有对象都是唯一的,所以我计划使用Mono Mono<Response1> r1 = qrepo.findByID(id) Mono<Response2> r2 = qrepo.findByID(r1.
Mono<Response1> r1 = qrepo.findByID(id)
Mono<Response2> r2 = qrepo.findByID(r1.getParam())
Mono<String> combined = Mono.when(r1, r2).map(t -> {
StringBuffer sb = new StringBuffer();
sb.append(r1.getProp1());
sb.append(r2.getProp2());
Mono r1=qrepo.findByID(id)
Mono r2=qrepo.findByID(r1.getParam())
Mono combined=Mono.when(r1,r2).map(t->{
StringBuffer sb=新的StringBuffer();
sb.append(r1.getProp1());
sb.append(r2.getProp2());
但这不适用于我您应该获取response1,然后将其结果平面映射到access参数,并将其传递到存储库,然后将结果映射到字符串
Mono<String> resultMono = qrepo.findByID(id)
.flatMap(response1 -> qrepo.findByID(response1.getParam())
.map(response2 -> {
StringBuilder sb = new StringBuilder();
sb.append(response1.getProp1());
sb.append(response2.getProp2());
return sb.toString();
}));
Mono resultMono=qrepo.findByID(id)
.flatMap(response1->qrepo.findByID(response1.getParam())
.map(响应2->{
StringBuilder sb=新的StringBuilder();
sb.append(response1.getProp1());
sb.append(response2.getProp2());
使某人返回字符串();
}));
您应该获取response1,然后将其结果映射到access参数,并将其传递到存储库,然后将结果映射到字符串
Mono<String> resultMono = qrepo.findByID(id)
.flatMap(response1 -> qrepo.findByID(response1.getParam())
.map(response2 -> {
StringBuilder sb = new StringBuilder();
sb.append(response1.getProp1());
sb.append(response2.getProp2());
return sb.toString();
}));
Mono resultMono=qrepo.findByID(id)
.flatMap(response1->qrepo.findByID(response1.getParam())
.map(响应2->{
StringBuilder sb=新的StringBuilder();
sb.append(response1.getProp1());
sb.append(response2.getProp2());
使某人返回字符串();
}));
使用Mono.zip
例如:
Mono.zip(Mono.just("hello"), Mono.just("world")).map(tuple2 -> {
return tuple2.getT1() + tuple2.getT2();
});
Mono.zip将给定的Mono聚合成一个新的Mono,当所有给定的Mono都生成了一个项目时,该Mono将得到满足。使用Mono.zip 例如:
Mono.zip(Mono.just("hello"), Mono.just("world")).map(tuple2 -> {
return tuple2.getT1() + tuple2.getT2();
});
Mono.zip将给定的Mono聚合成一个新的Mono,当所有给定的Mono都生成一个项目时,该Mono将得到满足