我正在使用WebFlux进行Web开发。 我发现了两种表达请求映射的方法。
@Controller
或@RestController
。RouterFunction
:RouterFunction
用于将请求路由到HandlerFunction
。我发现第二个比第一个更难使用,而且我也不知道它们之间的区别。
所以我想问哪一个表现更好2或1?
谢谢我的朋友们!
答案 0 :(得分:9)
让我从您的最后一个问题开始
2在性能上是否优于1?
不,性能没有差异。
我发现2比1更难使用
这绝对是基于个人偏好。可能是您习惯了命令式的编程风格。因此,您可以轻松编写代码(过一会儿,请相信我,您也会对Router Functions感到满意)
基本上,路由器功能是迈向编程功能风格的第一步。 Spring希望用户能够灵活地以功能样式配置路由。
除此之外,控制器和路由器功能之间没有区别。
答案 1 :(得分:1)
如果我们保留个人偏好,则过滤器之间会有一个明显的差异。
WebFlux框架提供两种类型的过滤器: WebFilters 和 HandlerFilterFunctions 。
它们之间的主要区别是WebFilter实现可用于所有端点,而HandlerFilterFunction实现仅适用于基于路由器的端点。
答案 2 :(得分:1)
RouterFunction具有与注释相似的目的。但是,有一个重要的区别:使用注释时,您的路线仅限于可以通过注释值表示的路径。