Kotlin协程允许通过返回Deferred
值来执行非阻塞代码。这对于在使用阻塞方法(例如,来自库)时制作非阻塞代码非常有用。
Spring 5允许在框架中使用Mono
和Flux
。我看到的最大兴趣是能够序列化这两种类型的实例,并在有人调用控制器端点时将其作为响应发回。
Spring 5的一个重点是对Kotlin(路由器,bean声明......)有一个特定的支持,但我找不到有关Kotlin协同程序和Spring 5反应类型之间可能的相互作用的信息。
有没有办法结合这些功能的优点?
Deferred
转换为Mono
/ Flux
?Deferred
响应类型的Spring控制器方法?如果不是,在哪种情况下,如果我们有Spring 5反应型,那么协程是否有意义?
答案 0 :(得分:13)
从版本5.2开始(仍在进行中),Spring Framework为协同程序提供官方支持。我写了a detailed blog post,解释了Mono
和Flux
类型如何映射到暂停函数,Deferred
和Kotlin Flow
类型。您还可以在coroutines section of Spring Framework 5.2 reference documentation。