diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml
index 866763d0a..bd90ad8e7 100644
--- a/yudao-dependencies/pom.xml
+++ b/yudao-dependencies/pom.xml
@@ -58,7 +58,7 @@
0.1.55
2.4.1
1.3.0
- 4.1.75.Final
+ 4.1.82.Final
8.2.2
4.6.0
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java
index 8911f49d5..7958b7a44 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.Objects;
@@ -118,21 +119,14 @@ public class YudaoTenantAutoConfiguration {
};
}
- /**
- * 引入租户时,tenantRedisCacheManager为主Bean
- *
- * @param redisTemplate
- * @param redisCacheConfiguration
- * @return
- */
- @Bean
- @Primary
- public RedisCacheManager tenantRedisCacheManager(
- RedisTemplate redisTemplate,
- RedisCacheConfiguration redisCacheConfiguration) {
- RedisCacheWriter cacheWriter =
- RedisCacheWriter.nonLockingRedisCacheWriter(
- Objects.requireNonNull(redisTemplate.getConnectionFactory()));
+ @Bean
+ @Primary // 引入租户时,tenantRedisCacheManager 为主 Bean
+ public RedisCacheManager tenantRedisCacheManager(RedisTemplate redisTemplate,
+ RedisCacheConfiguration redisCacheConfiguration) {
+ // 创建 RedisCacheWriter 对象
+ RedisConnectionFactory connectionFactory = Objects.requireNonNull(redisTemplate.getConnectionFactory());
+ RedisCacheWriter cacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);
+ // 创建 TenantRedisCacheManager 对象
return new TenantRedisCacheManager(cacheWriter, redisCacheConfiguration);
}
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java
index fa5adfa4d..10d62232d 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java
@@ -2,34 +2,37 @@ package cn.iocoder.yudao.framework.tenant.core.redis;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
import org.springframework.cache.Cache;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
/**
- * 租户缓存管理
+ * 多租户的 {@link RedisCacheManager} 实现类
*
- * 为cacheName增加自动增加租户表示,格式:name+":"+tenantId
+ * 操作指定 name 的 {@link Cache} 时,自动拼接租户后缀,格式为 name + ":" + tenantId
*
* @author airhead
*/
@Slf4j
public class TenantRedisCacheManager extends RedisCacheManager {
- public TenantRedisCacheManager(
- RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) {
- super(cacheWriter, defaultCacheConfiguration);
- }
-
- @Override
- public Cache getCache(String name) {
- //租户未设置时,返回原始name
- if (TenantContextHolder.getTenantId() == null) {
- return super.getCache(name);
+ public TenantRedisCacheManager(RedisCacheWriter cacheWriter,
+ RedisCacheConfiguration defaultCacheConfiguration) {
+ super(cacheWriter, defaultCacheConfiguration);
+ }
+
+ @Override
+ public Cache getCache(@NotNull String name) {
+ // 如果开启多租户,则 name 拼接租户后缀
+ if (!TenantContextHolder.isIgnore()
+ && TenantContextHolder.getTenantId() != null) {
+ name = name + ":" + TenantContextHolder.getTenantId();
+ }
+
+ // 继续基于父方法
+ return super.getCache(name);
}
- name = name + ":" + TenantContextHolder.getTenantId();
- return super.getCache(name);
- }
}
diff --git a/yudao-framework/yudao-spring-boot-starter-redis/pom.xml b/yudao-framework/yudao-spring-boot-starter-redis/pom.xml
index 5c14c02fd..430ede255 100644
--- a/yudao-framework/yudao-spring-boot-starter-redis/pom.xml
+++ b/yudao-framework/yudao-spring-boot-starter-redis/pom.xml
@@ -35,7 +35,6 @@
io.netty
netty-all
- 4.1.75.Final
diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml
index c26354ead..197649b5e 100644
--- a/yudao-server/src/main/resources/application-local.yaml
+++ b/yudao-server/src/main/resources/application-local.yaml
@@ -51,7 +51,7 @@ spring:
# url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例
username: root
- password: 123456
+ password: ${RUOYI_VUE_PRO}
# username: sa
# password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
slave: # 模拟从库,可根据自己需要修改
@@ -62,7 +62,7 @@ spring:
# url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例
username: root
- password: 123456
+ password: ${RUOYI_VUE_PRO}
# username: sa
# password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W