Kotlin协同程序和Spring Framework 5反应类型

时间:2017-10-11 13:37:52

标签: spring kotlin coroutine spring-webflux kotlinx.coroutines

Kotlin协程允许通过返回Deferred值来执行非阻塞代码。这对于在使用阻塞方法(例如,来自库)时制作非阻塞代码非常有用。

Spring 5允许在框架中使用MonoFlux。我看到的最大兴趣是能够序列化这两种类型的实例,并在有人调用控制器端点时将其作为响应发回。

Spring 5的一个重点是对Kotlin(路由器,bean声明......)有一个特定的支持,但我找不到有关Kotlin协同程序和Spring 5反应类型之间可能的相互作用的信息。

有没有办法结合这些功能的优点?

  • Deferred转换为Mono / Flux
  • 具有Deferred响应类型的Spring控制器方法?

如果不是,在哪种情况下,如果我们有Spring 5反应型,那么协程是否有意义?

1 个答案:

答案 0 :(得分:13)

从版本5.2开始(仍在进行中),Spring Framework为协同程序提供官方支持。我写了a detailed blog post,解释了MonoFlux类型如何映射到暂停函数,Deferred和Kotlin Flow类型。您还可以在coroutines section of Spring Framework 5.2 reference documentation

中找到更多详细信息