路由器和注释控制器有什么区别?
What is the difference between Router and Annotated Controllers?
我正在使用 WebFlux 进行 Web 开发。
我找到了 2 种表达请求映射的方法。
- 带注释的控制器:如
@Controller
或 @RestController
。
RouterFunction
:RouterFunction
用于将请求路由到HandlerFunction
。
我发现第二个比第一个难用,而且我不知道它们之间的区别。
所以我想问一下 2 和 1 哪个表现更好?
谢谢我的朋友们!
让我从你的最后一个问题开始
Is 2 better than 1, in performance?
不,性能没有区别。
I find that 2 is harder to use than 1
这完全取决于个人喜好。可能是您习惯了命令式编程风格。因此你觉得写起来很容易(相信我,过一段时间你也会对 Router Functions 有同样的感觉)
路由器函数基本上是向函数式编程风格迈出的一步。 Spring 希望用户能够灵活地以功能样式配置路由。
除此之外,Controllers 和 Router Functions 之间没有区别。
如果我们不考虑个人偏好,则过滤器存在明显差异。
WebFlux框架提供了两种类型的过滤器:WebFilters和HandlerFilterFunctions.
它们之间的主要区别在于 WebFilter 实现适用于所有端点,而 HandlerFilterFunction 实现仅适用于基于路由器的端点。
RouterFunction 的用途与注释类似。但是,有一个重要的区别:使用注释,您的路由仅限于可以通过注释值表达的内容。
我正在使用 WebFlux 进行 Web 开发。 我找到了 2 种表达请求映射的方法。
- 带注释的控制器:如
@Controller
或@RestController
。 RouterFunction
:RouterFunction
用于将请求路由到HandlerFunction
。
我发现第二个比第一个难用,而且我不知道它们之间的区别。
所以我想问一下 2 和 1 哪个表现更好?
谢谢我的朋友们!
让我从你的最后一个问题开始
Is 2 better than 1, in performance?
不,性能没有区别。
I find that 2 is harder to use than 1
这完全取决于个人喜好。可能是您习惯了命令式编程风格。因此你觉得写起来很容易(相信我,过一段时间你也会对 Router Functions 有同样的感觉)
路由器函数基本上是向函数式编程风格迈出的一步。 Spring 希望用户能够灵活地以功能样式配置路由。
除此之外,Controllers 和 Router Functions 之间没有区别。
如果我们不考虑个人偏好,则过滤器存在明显差异。
WebFlux框架提供了两种类型的过滤器:WebFilters和HandlerFilterFunctions.
它们之间的主要区别在于 WebFilter 实现适用于所有端点,而 HandlerFilterFunction 实现仅适用于基于路由器的端点。
RouterFunction 的用途与注释类似。但是,有一个重要的区别:使用注释,您的路由仅限于可以通过注释值表达的内容。