【无标题】

第一次使用r2dbc,在一个四年的工程里。因为工程的dependencyManagement限制了依赖的版本:

复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-r2dbc</artifactId>
        </dependency>
        一开始用的下面这个:
        <dependency>
            <groupId>io.asyncer</groupId>
            <artifactId>r2dbc-mysql</artifactId>
            <version>1.4.0</version>
        </dependency>
        后来换成下面这个:
        <dependency>
            <groupId>dev.miku</groupId>
            <artifactId>r2dbc-mysql</artifactId>
            <version>0.8.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

spring-boot-starter-data-r2dbc版本是2.3.9,

mysql-connector-java版本是8.0.27

r2dbc-mysql的版本是1.4.0

启动的时候报错误:
java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT

搜到了一个github的oracle-r2dbc类库ISSUE页面,有人回答是版本不兼容导致的。spring-boot-starter-data-r2dbc如果是版本低,那么应该用r2dbc类库的0.8版本。mvnrepository中没有看到这个类库有0.9以下版本。直到看到这个贴子:

https://github.com/asyncer-io/r2dbc-mysql

Refer to the table below to determine the appropriate version of r2dbc-mysql for your project.

推荐的版本如下:

spring-boot-starter-data-r2dbc spring-data-r2dbc r2dbc-spi r2dbc-mysql(recommended)
3.0.* and above 3.0.* and above 1.0.0.RELEASE io.asyncer:r2dbc-mysql:1.4.0
2.7.* 1.5.* 0.9.1.RELEASE io.asyncer:r2dbc-mysql:0.9.7
2.6.* and below 1.4.* and below 0.8.6.RELEASE dev.miku:r2dbc-mysql:0.8.2
相关推荐
其美杰布-富贵-李1 小时前
Spring Boot 依赖注入说明文档
java·spring boot·python
流烟默2 小时前
SpringBoot应用链路追踪 traceId 技术方案
spring boot·skywalking·traceid
耀耀_很无聊3 小时前
13_Spring Boot 3.5.8 + Redisson 3.45.1 导致 Sa-Token 登录 StackOverflowError
spring boot·后端·bootstrap
霸道流氓气质3 小时前
SpringBoot中集成阿里云消息队列 ApsaraMQ for RabbitMQ 全面指南
spring boot·阿里云·java-rabbitmq
霸道流氓气质3 小时前
SpringBoot中实现告警判定算法-位报警与模拟量阈值-技术详解
spring boot·算法·jquery
YDS8294 小时前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
阿拉雷️4 小时前
部署实战】Docker + AI Agent:让AI一键部署Spring Boot到服务器,从打包到上线只要一条指令
人工智能·spring boot·docker
IT_Octopus4 小时前
一次由 RestTemplate 引发的 Connection reset:被 XML 截胡的请求体
xml·java·spring boot
重生之我是Java开发战士5 小时前
【Java EE】Spring Boot配置文件
java·spring boot·java-ee
钱六两20 小时前
#3、SpringAI 接入deepSeek大模型(喂饭版)
java·spring boot·ai编程