Springboot2.0+Spring5.0 reactor Controller&Handler 实战

  • 前面初体验之后,我们尝试一下进行route Path的迁移,我们实战只写日常用到的配置实现方式,不具体分析原理,具体原理后续分析。在传统springMvc项目中我们使用Controller来处理serverlet的请求,在spring 5.0中的reactive方式中,对这些做了基本的兼容,如果把传统编码方式的项目迁移到react,只需要做一些特定的调整,在react mvc中,推荐使用handler替代Controller来做路由数据处理,下面将两种方式对比着做对照梳理。
  • 在React模式中,Controller数据返回和入参处理都是通过Mono<T>、Flux<T>来处理,两个是实现了Publisher<T>接口入参中可以注入org.springframeworl.http.server.reactive.ServerHttpRequest
  • Handler比较简单入参和出参分别为ServerRequest 和Mono<ServerResponse>
  1. 返回简单字符的GET请求
          Controller模式

  

 @RequestMapping(value = {"", "/"}, method = RequestMethod.GET)
  public Mono<String> getUserBase() {
    return Mono.create(stringMonoSink -> stringMonoSink.success("getUserBase:" + Math.random()));
  }
 Handler模式

public Mono<ServerResponse> getAddress(ServerRequest request) {
     return ServerResponse.ok().contentType(APPLICATION_JSON_UTF8).syncBody("ooooooooooooooooo2");
}   
 2. Rest PathVariable 风格
Controller 模式
@GetMapping(value = {"/name/{name}"})
public Mono<String> getUserName(@PathVariable String name) {
    return Mono.create(stringMonoSink -> stringMonoSink.success("getUserName:" + name));
}
Handler 模式
 public Mono<ServerResponse> getName
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值