Commit 86eae989f90c240fdf2adbab05a93cec79167f6a

Authored by YunaiV
1 parent c98fd955

fix(redis): 适配 Redisson 4.6 的 Spring Data Redis 依赖

- 排除 Redisson 默认引入的 redisson-spring-data-41

- 显式使用 redisson-spring-data-35 适配 Spring Boot 3.5

- RedisTemplate 复用同一个 JSON RedisSerializer

- 单测基类切换为 RedissonAutoConfigurationV2
yudao-dependencies/pom.xml
@@ -260,8 +260,18 @@ @@ -260,8 +260,18 @@
260 <groupId>org.springframework.boot</groupId> 260 <groupId>org.springframework.boot</groupId>
261 <artifactId>spring-boot-starter-actuator</artifactId> 261 <artifactId>spring-boot-starter-actuator</artifactId>
262 </exclusion> 262 </exclusion>
  263 + <exclusion>
  264 + <groupId>org.redisson</groupId>
  265 + <!-- Redisson 4.6.x 默认依赖 redisson-spring-data-41(适配 Spring Data Redis 4.x),排除后使用下方的 spring-data-35 适配 Spring Boot 3.5 -->
  266 + <artifactId>redisson-spring-data-41</artifactId>
  267 + </exclusion>
263 </exclusions> 268 </exclusions>
264 </dependency> 269 </dependency>
  270 + <dependency>
  271 + <groupId>org.redisson</groupId>
  272 + <artifactId>redisson-spring-data-35</artifactId>
  273 + <version>${redisson.version}</version>
  274 + </dependency>
265 275
266 <dependency> 276 <dependency>
267 <groupId>com.dameng</groupId> 277 <groupId>com.dameng</groupId>
yudao-framework/yudao-spring-boot-starter-redis/pom.xml
@@ -26,6 +26,10 @@ @@ -26,6 +26,10 @@
26 <groupId>org.redisson</groupId> 26 <groupId>org.redisson</groupId>
27 <artifactId>redisson-spring-boot-starter</artifactId> 27 <artifactId>redisson-spring-boot-starter</artifactId>
28 </dependency> 28 </dependency>
  29 + <dependency>
  30 + <groupId>org.redisson</groupId>
  31 + <artifactId>redisson-spring-data-35</artifactId>
  32 + </dependency>
29 33
30 <dependency> 34 <dependency>
31 <groupId>org.springframework.boot</groupId> 35 <groupId>org.springframework.boot</groupId>
yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java
@@ -28,9 +28,10 @@ public class YudaoRedisAutoConfiguration { @@ -28,9 +28,10 @@ public class YudaoRedisAutoConfiguration {
28 // 使用 String 序列化方式,序列化 KEY 。 28 // 使用 String 序列化方式,序列化 KEY 。
29 template.setKeySerializer(RedisSerializer.string()); 29 template.setKeySerializer(RedisSerializer.string());
30 template.setHashKeySerializer(RedisSerializer.string()); 30 template.setHashKeySerializer(RedisSerializer.string());
31 - // 使用 JSON 序列化方式(库是 Jackson ),序列化 VALUE 。  
32 - template.setValueSerializer(buildRedisSerializer());  
33 - template.setHashValueSerializer(buildRedisSerializer()); 31 + // 使用 JSON 序列化方式,序列化 VALUE
  32 + RedisSerializer<?> redisSerializer = buildRedisSerializer();
  33 + template.setValueSerializer(redisSerializer);
  34 + template.setHashValueSerializer(redisSerializer);
34 return template; 35 return template;
35 } 36 }
36 37
yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration;
8 import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; 8 import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration;
9 import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; 9 import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
10 import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; 10 import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
11 -import org.redisson.spring.starter.RedissonAutoConfiguration; 11 +import org.redisson.spring.starter.RedissonAutoConfigurationV2;
12 import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; 12 import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
13 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; 13 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
14 import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; 14 import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
@@ -44,7 +44,7 @@ public class BaseDbAndRedisUnitTest { @@ -44,7 +44,7 @@ public class BaseDbAndRedisUnitTest {
44 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer 44 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer
45 YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 45 YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类
46 RedisAutoConfiguration.class, // Spring Redis 自动配置类 46 RedisAutoConfiguration.class, // Spring Redis 自动配置类
47 - RedissonAutoConfiguration.class, // Redisson 自动配置类 47 + RedissonAutoConfigurationV2.class, // Redisson 自动配置类
48 48
49 // 其它配置类 49 // 其它配置类
50 SpringUtil.class 50 SpringUtil.class
yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.framework.test.core.ut; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.framework.test.core.ut;
3 import cn.hutool.extra.spring.SpringUtil; 3 import cn.hutool.extra.spring.SpringUtil;
4 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; 4 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
5 import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; 5 import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration;
6 -import org.redisson.spring.starter.RedissonAutoConfiguration; 6 +import org.redisson.spring.starter.RedissonAutoConfigurationV2;
7 import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; 7 import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
8 import org.springframework.boot.test.context.SpringBootTest; 8 import org.springframework.boot.test.context.SpringBootTest;
9 import org.springframework.context.annotation.Import; 9 import org.springframework.context.annotation.Import;
@@ -25,7 +25,7 @@ public class BaseRedisUnitTest { @@ -25,7 +25,7 @@ public class BaseRedisUnitTest {
25 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer 25 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer
26 RedisAutoConfiguration.class, // Spring Redis 自动配置类 26 RedisAutoConfiguration.class, // Spring Redis 自动配置类
27 YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 27 YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类
28 - RedissonAutoConfiguration.class, // Redisson 自动配置类 28 + RedissonAutoConfigurationV2.class, // Redisson 自动配置类
29 29
30 // 其它配置类 30 // 其它配置类
31 SpringUtil.class 31 SpringUtil.class