Spring Boot整合WEBFlux + R2DBC+Mysql 1、R2DBC介绍 R2DBC 基于 Reactive Streams 反应流规范,它是一个开放的规范,为驱动程序供应商和使用方提
R2DBC 基于 Reactive Streams 反应流规范,它是一个开放的规范,为驱动程序供应商和使用方提供接口( r2dbc-spi ),与 JDBC 的阻塞特性不同,它提供了完全反应式的非阻塞 api 与 关系型数据库 交互。 简单说, R2DBC 项目是支持使用反应式编程 API 访问关系型数据库的桥梁,定义统一接口规范,不同数据库厂家通过实现该规范提供驱动程序包。 同时, r2dbc 还提供反应式连接池r2dbc-pool
具体了解可以参考下面连接:
https://cloud.tencent.com/developer/article/1741470
org.springframework.boot spring-boot-starter-webflux org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-data-r2dbc dev.miku r2dbc-mysql
spring: r2dbc:#使用serverTimezone在控制台打印时间会出现乱码情况但不影响程序运行,翻阅资料之后换成serverZoneId可以解决这种问题。# url: r2dbc:mysql://localhost:3306/数据库?serverTimezone=GMT%2b8&characterEncoding=UTF-8 url: r2dbc:mysql://localhost:3306/数据库?serverZoneId=GMT%2b8&characterEncoding=UTF-8 username: #用户名 passWord: #密码
Spring WebFlux在使用的时候其实和mvc形式基本是差不多的,但是更倾向于mybatis-plus
和JPA形式的编码方式,所以在使用的时候就更加简单,一些基本的增删改查的接口是不用我们
自己再去xml里写入,通过继承ReactiveSortingRepository<?,?>来进行基本的接口调用。
注:这里只是简单介绍如何连接mysql数据库进行增删改查操作,如果想深入了解可自行去官网查找资料进行学习,
本文章就不在进行详细描述和编码。
@Data@Table("student")public class Student implements Serializable { @Id private Long id; private String code; private String name; private String gender; private String address; private Integer active;}
@RestController@RequestMapping("/test/webflux")public class SpringWebFluxController { @Autowired SpringWebFluxService springWebFluxService; @GetMapping("/testR1") public Flux<Student> Test(){ return springWebFluxService.findAll(); } @PostMapping("/testR3") public Mono<Student> Test2(@RequestBody Student student){ System.out.println(student); return springWebFluxService.insertDefined(student); }
@Servicepublic class SpringWebFluxServiceImpl implements SpringWebFluxService { @Resource SpringWebFluxMapper springWebFluxMapper; //查询 @Override public Flux<Student> findAll() { return springWebFluxMapper.findAll(); } //新增 @Override public Mono<Student> insertDefined(Student student) { return springWebFluxMapper.insertDefined(student); }}
@Repositorypublic interface SpringWebFluxMapper extends ReactiveSortingRepository<Student,Long> { @Modifying @Query("insert into student(code,name,gender,active,address) values(:#{#student.code},:# {#student.name},:#{#student.gender},:#{#student.active},:#{#student.address})") Mono<Student> insertDefined(Student student);}
到这就算是结束了,想要更深入了解可自行查阅资料
在高并发下,Spring MVC + JDBC的响应时间开始下降。显然,R2DBC在更高的并发性下提供了更好的响应时间。Spring WebFlux也比使用Spring MVC的类似实现更好。
来源地址:https://blog.csdn.net/xiaopengJava/article/details/130017148
--结束END--
本文标题: Spring Boot整合WebFlux + R2DBC+Mysql
本文链接: https://www.lsjlt.com/news/411909.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0