我想从 spring 的 mvc Controller 返回 Observable
。它适用于 Single
:
@GetMapping Object a() {return Single.just(1);}
正如预期的那样,当我查询服务器时,我得到 1
。但是当我对 Observable
做同样的事情时:
@GetMapping Object a() {return Observable.just(1);}
我得到的答案是 {}
。 spring-mvc 不订阅返回的 Observable
而是简单地将其序列化为 json。 spring-mvc 可以开箱即用地理解 Observable
而我只是搞砸了一些配置吗?还是我必须注册我的自定义处理程序或安装一些插件?
最佳答案
您可以使用 Spring MVC Reactive (但目前尚未作为最终版本发布)。它适用于 Reactor 和 RxJava。你将能够编写这种 Controller :
@Test
class ExampleController {
@RequestMapping("/hello")
public Single<String> hello() { return Single.just("world"); }
}
或者您可以编写自己的类适配器并将 Single
转换为 Spring DeferredResult
(参见 example)
这个例子来自 Spring Boot Starter您可能想直接使用。
关于java - 如何让 spring boot mvc 理解 observables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40155854/