java - 如何让 spring boot mvc 理解 observables?

标签 java spring spring-mvc spring-boot rx-java

我想从 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/

相关文章:

java - 从集合(集合)中获取任何项目

java - Eclipse,ADT,SDK,JDK

java - spring-data-mongodb 实体实现接口(interface)创建错误的集合

sts 中的 spring servlet-context

java - HybrisContextFactory - 初始化全局应用程序上下文时出错

java - 在 shell 脚本中解析 wmic 的输出

java - 将 "or"添加到字符串

java - Spring 安全 "Refused to execute script from ..."

java - org.hibernate.NonUniqueObjectException。如何修复它?

java - 使用 Spring MVC 和 Boot 刷新静态内容