Kay*_*ayV 4 reactive-streams spring-webflux
我正在学习 spring 5 webflux 和反应流。并且有新的HandlerFunctions和RouterFunctions来实现Http请求和响应。
并根据文件:
处理函数的注释对应部分是带有 @RequestMapping 的方法。
既然@RequestMapping非常容易处理、实现和理解,那么为什么需要更复杂和更困难的方法来通过这个 HandlerFunctions 和 RouterFunction 实用程序来处理 Http 请求和响应呢?
请建议。
Spring WebFlux 为您提供了两种不同的风格:注释式和函数式。
根据您想要构建的应用程序类型,您必须处理的约束(其中之一或另一个可能更相关)。您甚至可以在同一个应用程序中混合使用两者。
基于注释的模型非常成功,但它也有一些限制,主要是因为 Java 注释本身:
函数式变体试图解决这些问题并采用函数式风格(使用 JDK8 函数 API)和不变性。它具有“更多的库;更少的框架”的风格,这意味着您可以更好地控制事物。这是一个示例:使用RouterFunction,您可以链接RequestPredicates它们并且它们按顺序执行,因此您可以完全控制最终处理传入请求的内容。使用注释模型,将通过查看方法和传入请求上的注释来选择最具体的处理程序。
如果您对注释模型非常满意,则没有理由进行切换。但同样,您可以混合使用两者,也许您会发现功能模型很方便。在我看来,即使您不打算采用它,尝试一下也不会造成伤害 - 最坏的情况是,这将拓宽您作为开发人员的视野,并向您展示一种不同的做事方式。
有关更多信息,您可以查看Arjen Poutsma 关于 Spring WebFlux 中的函数式 Web 框架的演讲。
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |