我需要将一些spring代码重写为reactive-spring。因此,有一个提供对象类型的反应性弹簧恢复服务。但是映射方法的返回类型是另一种类型,它取决于语言环境。现在有一个阻塞的alogorithm方法,它从存储库中调用get方法,然后拆分结果,然后采用String语言环境,然后从中获取所有一个响应对象。如何将其组合成反应性方法的一个非阻塞链? 我看到我唯一需要等待的就是Mongo Db服务,这是一种反应,但是我想适当地编写代码以使Spring框架阻止Mono本身。这是示例代码:
@RestController
@RequestMapping
public class PhoneCheckController {
@Autowired
private MessageLocalization loc;
@Autowired
private PhoneCheckService service;
@GetMapping("/check")
public PhoneCheckResponse checkPhone(@Valid @ModelAttribute PhoneCheckRequest request, Locale locale) {
PhoneCheckResult result = service.checkPhoneNumber(DtoTransformer.toParams(request)).block();
return new PhoneCheckResponse(
result.getViolationLevel(),
loc.getMessage(result.getMessage(), locale)
);
}
}
我试图做到这样
public Mono<PhoneCheckResponse> checkPhone(@Valid @ModelAttribute PhoneCheckRequest request, Locale locale) {
PhoneCheckResult result = service.checkPhoneNumber(DtoTransformer.toParams(request));
return Mono.just(new PhoneCheckResponse(
result.getViolationLevel(), //reactive part I need put
loc.getMessage(result.getMessage(), locale) //reactive part
)
);
}