Jba*_*aur 5 spring-boot project-reactor
我试图在我的Spring Boot应用程序中使用Spring Reactor.
我正在使用Project Reactor 3.0.7.RELEASE和Spring Boot 1.5.3.RELEASE.
我的Service类中有一个返回Flux的方法.
我想将值返回到web层中的控制器.但是,我没有看到值在json响应中返回.
当我从浏览器调用http:// localhost:8080时,我得到响应,{"prefetch": - 1}
我不确定在返回响应之前是否应该从Flux转换为String.
你能帮我找到正确的方法吗?
仅在Spring 5(当前处于RC阶段)和Spring Boot 2(当前处于Milestone阶段)中实现了使用Reactor的完全反应式支持。
您可以独立于Spring使用Reactor,但这不会使框架具有反应性和异步性,因此您会失去一些好处。您不能简单地返回a,Flux因为框架尚不了解这种类型。
但是,我认为,如果必须安排很多服务调用,它在服务层中仍然有用。
你能在这种情况下,做的是使用Flux和Mono整个服务层和转换那些弹簧4分的DeferredResult。就像是:
DeferredResult<ResponseEntity<String>> result = new DeferredResult<>();
service.getSomeStringMono()
.map(n -> ResponseEntity.ok(n))
.defaultIfEmpty(ResponseEntity.notFound().build()
.subscribe(re -> result.setResult(re),
error -> result.setErrorResult(error));
return result;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2536 次 |
| 最近记录: |