From 93e01042d6839e031192caf52704791c1a58f75f Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Fri, 12 May 2023 09:42:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20redis=20=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=9B=86=E6=88=90=E6=A8=A1=E5=9D=97=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/SaSessionForFastjsonCustomized.java | 2 +- .../satoken/dao/SaTokenDaoRedisFastjson.java | 14 +++++---- .../dao/SaSessionForFastjson2Customized.java | 2 +- .../satoken/dao/SaTokenDaoRedisFastjson2.java | 14 +++++---- .../dao/SaSessionForJacksonCustomized.java | 4 +-- .../satoken/dao/SaTokenDaoRedisJackson.java | 30 +++++++++++++++---- .../cn/dev33/satoken/dao/SaTokenDaoRedis.java | 16 ++++++---- .../dao/SaSessionForJacksonCustomized.java | 2 +- .../dao/SaTokenDaoRedissonJackson.java | 13 ++++++-- 9 files changed, 67 insertions(+), 30 deletions(-) diff --git a/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjsonCustomized.java b/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjsonCustomized.java index 9802fa53..71350777 100644 --- a/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjsonCustomized.java +++ b/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjsonCustomized.java @@ -7,7 +7,7 @@ import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.util.SaFoxUtil; /** - * Fastjson 定制版 SaSession,重写类型转换API + * Fastjson 定制版 SaSession,重写类型转换API、忽略 timeout 字段的序列化 * * @author click33 * @since 2022-10-19 diff --git a/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson.java b/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson.java index 57729046..396ad7e5 100644 --- a/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson.java +++ b/sa-token-plugin/sa-token-dao-redis-fastjson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson.java @@ -18,21 +18,21 @@ import cn.dev33.satoken.strategy.SaStrategy; import cn.dev33.satoken.util.SaFoxUtil; /** - * Sa-Token 持久层实现 [Redis存储、fastjson序列化] + * Sa-Token 持久层实现 [ Redis存储、fastjson序列化 ] * * @author sikadai - * + * @since <= 1.34.0 */ @Component public class SaTokenDaoRedisFastjson implements SaTokenDao { /** - * String专用 + * String 读写专用 */ public StringRedisTemplate stringRedisTemplate; /** - * Object专用 + * Object 读写专用 */ public StringRedisTemplate objectRedisTemplate; @@ -43,7 +43,7 @@ public class SaTokenDaoRedisFastjson implements SaTokenDao { @Autowired public void init(RedisConnectionFactory connectionFactory) { - // 不重复初始化 + // 如果已经初始化成功了,就立刻退出,不重复初始化 if(this.isInit) { return; } @@ -54,10 +54,12 @@ public class SaTokenDaoRedisFastjson implements SaTokenDao { // 指定相应的序列化方案 StringRedisSerializer keySerializer = new StringRedisSerializer(); StringRedisSerializer valueSerializer = new StringRedisSerializer(); + // 构建StringRedisTemplate StringRedisTemplate stringTemplate = new StringRedisTemplate(); stringTemplate.setConnectionFactory(connectionFactory); stringTemplate.afterPropertiesSet(); + // 构建RedisTemplate StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(connectionFactory); @@ -70,6 +72,8 @@ public class SaTokenDaoRedisFastjson implements SaTokenDao { // 开始初始化相关组件 this.stringRedisTemplate = stringTemplate; this.objectRedisTemplate = template; + + // 打上标记,表示已经初始化成功,后续无需再重新初始化 this.isInit = true; } diff --git a/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjson2Customized.java b/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjson2Customized.java index 73a81591..5970540c 100644 --- a/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjson2Customized.java +++ b/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaSessionForFastjson2Customized.java @@ -7,7 +7,7 @@ import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.util.SaFoxUtil; /** - * Fastjson 定制版 SaSession,重写类型转换API + * Fastjson2 定制版 SaSession,重写类型转换API、忽略 timeout 字段的序列化 * * @author click33 * @since 2022-10-19 diff --git a/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson2.java b/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson2.java index 921eabef..60c02dff 100644 --- a/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson2.java +++ b/sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisFastjson2.java @@ -18,21 +18,21 @@ import cn.dev33.satoken.strategy.SaStrategy; import cn.dev33.satoken.util.SaFoxUtil; /** - * Sa-Token 持久层实现 [Redis存储、fastjson2序列化] + * Sa-Token 持久层实现 [ Redis存储、fastjson2序列化 ] * * @author sikadai - * + * @since <= 1.34.0 */ @Component public class SaTokenDaoRedisFastjson2 implements SaTokenDao { /** - * String专用 + * String 读写专用 */ public StringRedisTemplate stringRedisTemplate; /** - * Object专用 + * Object 读写专用 */ public StringRedisTemplate objectRedisTemplate; @@ -43,7 +43,7 @@ public class SaTokenDaoRedisFastjson2 implements SaTokenDao { @Autowired public void init(RedisConnectionFactory connectionFactory) { - // 不重复初始化 + // 如果已经初始化成功了,就立刻退出,不重复初始化 if(this.isInit) { return; } @@ -54,10 +54,12 @@ public class SaTokenDaoRedisFastjson2 implements SaTokenDao { // 指定相应的序列化方案 StringRedisSerializer keySerializer = new StringRedisSerializer(); StringRedisSerializer valueSerializer = new StringRedisSerializer(); + // 构建StringRedisTemplate StringRedisTemplate stringTemplate = new StringRedisTemplate(); stringTemplate.setConnectionFactory(connectionFactory); stringTemplate.afterPropertiesSet(); + // 构建RedisTemplate StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(connectionFactory); @@ -70,6 +72,8 @@ public class SaTokenDaoRedisFastjson2 implements SaTokenDao { // 开始初始化相关组件 this.stringRedisTemplate = stringTemplate; this.objectRedisTemplate = template; + + // 打上标记,表示已经初始化成功,后续无需再重新初始化 this.isInit = true; } diff --git a/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaSessionForJacksonCustomized.java b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaSessionForJacksonCustomized.java index 8c90b91c..a0b320e4 100644 --- a/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaSessionForJacksonCustomized.java +++ b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaSessionForJacksonCustomized.java @@ -5,10 +5,10 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import cn.dev33.satoken.session.SaSession; /** - * Jackson定制版SaSession,忽略 timeout 等属性的序列化 + * Jackson 定制版 SaSession,忽略 timeout 等属性的序列化 * * @author click33 - * + * @since <= 1.34.0 */ @JsonIgnoreProperties({"timeout"}) public class SaSessionForJacksonCustomized extends SaSession { diff --git a/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java index cc8da95f..bdfdc95f 100644 --- a/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java +++ b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java @@ -32,10 +32,10 @@ import cn.dev33.satoken.strategy.SaStrategy; import cn.dev33.satoken.util.SaFoxUtil; /** - * Sa-Token 持久层实现 [Redis存储、Jackson序列化] + * Sa-Token 持久层实现 [ Redis存储、Jackson序列化 ] * * @author click33 - * + * @since <= 1.34.0 */ @Component public class SaTokenDaoRedisJackson implements SaTokenDao { @@ -48,17 +48,24 @@ public class SaTokenDaoRedisJackson implements SaTokenDao { public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern(TIME_PATTERN); /** - * ObjectMapper对象 (以public作用域暴露出此对象,方便开发者二次更改配置) + * ObjectMapper 对象 (以 public 作用域暴露出此对象,方便开发者二次更改配置) + * + *
例如: + *
+ * SaTokenDaoRedisJackson redisJackson = (SaTokenDaoRedisJackson) SaManager.getSaTokenDao(); + * redisJackson.objectMapper.xxx = xxx; + *+ * */ public ObjectMapper objectMapper; /** - * String专用 + * String 读写专用 */ public StringRedisTemplate stringRedisTemplate; /** - * Object专用 + * Object 读写专用 */ public RedisTemplate
例如: + *
+ * SaTokenDaoRedisJackson redisJackson = (SaTokenDaoRedisJackson) SaManager.getSaTokenDao(); + * redisJackson.objectMapper.xxx = xxx; + *+ * */ public ObjectMapper objectMapper;