我是spring webflux的初学者。我们目前正在将我们的应用程序迁移到 Spring Webflux。不,我遇到了一个问题。以下是我的场景。
主要服务类为数据调用以下服务类
StudentService
- 返回Mono<Student>
StaffService
- 返回Mono<Staff>
这里我有一个包装类 StudentWithMentor 来存储这些服务类的结果。
public class StudentWithMentor {
private Student student;
private Staff mentor;
}
现在在控制器中,我正在调用上述 2 个服务并以下列方式将其映射到“StudentWithMentor”中
Mono<StudentWithMentor> studentWithMentorMono = Mono.just(new StudentWithMentor());
return studentWithMentorMono.map(s->{
studentService.getStudentById(id)
.doOnSuccess(s::setStudent)
.doOnSuccess(st->staffService.getStaffByGrade(st.getGrade()));
return s;
});
但是当我调用这个端点时,我在邮递员中得到以下结果
{
"student": null,
"mentor": null
}
注意:我在调试时从底层服务获得结果。但是调用在它处理之前就返回了。
我怎样才能以完全非阻塞的方式实现这一点。感谢任何帮助。