换一种方式编写 Spring MVC 接口

本文介绍了如何使用Spring 5的函数式端点(Functional Endpoints)替代传统的Spring MVC接口编写方式,通过RouterFunction、ServerRequest、ServerResponse和HandlerFunction等进行请求到响应的处理。示例展示了如何创建路由、处理请求参数以及实现条件路由判断。
摘要由CSDN通过智能技术生成
  1. 写在前面

通常我们编写 Spring MVC 接口的范式是这样的:

@RestController

@RequestMapping("/v1/userinfo")

public class UserInfoController {

@GetMapping("/foo")

public String foo() {

return "felord.cn";

}

}

这种我都写吐了,今天换个口味,使用 Spring 5 新引入的函数式端点(Functional Endpoints)来耍耍。 这种方式同样支持 Spring Webflux。

请注意可使用该特性的 Spring 版本不低于 Spring 5.2

2. 依赖

为了演示,这里极简化只引入 Spring MVC 的 starter :

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

3. RouterFunction

在函数式端点的写法中,传统的请求映射(@RequestMapping)被路由函数(RouterFunction)所代替。上面的写法等同于:

@Bean

public RouterFunction<ServerResponse> fooFunction() {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值