src/main/java/com/ruoyi/common/utils/DictUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/framework/config/RedisConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/common/utils/DictUtils.java
@@ -2,6 +2,7 @@ import java.util.Collection; import java.util.List; import com.alibaba.fastjson2.JSONArray; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.framework.redis.RedisCache; @@ -38,10 +39,10 @@ */ public static List<SysDictData> getDictCache(String key) { Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); if (StringUtils.isNotNull(cacheObj)) JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); if (StringUtils.isNotNull(arrayCache)) { return StringUtils.cast(cacheObj); return arrayCache.toList(SysDictData.class); } return null; } @@ -83,27 +84,30 @@ StringBuilder propertyString = new StringBuilder(); List<SysDictData> datas = getDictCache(dictType); if (StringUtils.containsAny(separator, dictValue) && StringUtils.isNotEmpty(datas)) if (StringUtils.isNotEmpty(datas)) { for (SysDictData dict : datas) if (StringUtils.containsAny(separator, dictValue)) { for (String value : dictValue.split(separator)) for (SysDictData dict : datas) { if (value.equals(dict.getDictValue())) for (String value : dictValue.split(separator)) { propertyString.append(dict.getDictLabel()).append(separator); break; if (value.equals(dict.getDictValue())) { propertyString.append(dict.getDictLabel()).append(separator); break; } } } } } else { for (SysDictData dict : datas) else { if (dictValue.equals(dict.getDictValue())) for (SysDictData dict : datas) { return dict.getDictLabel(); if (dictValue.equals(dict.getDictValue())) { return dict.getDictLabel(); } } } } src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java
@@ -3,13 +3,9 @@ import java.nio.charset.Charset; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; import org.springframework.util.Assert; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.JSONWriter; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.type.TypeFactory; /** * Redis使用FastJson序列化 @@ -18,9 +14,6 @@ */ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> { @SuppressWarnings("unused") private ObjectMapper objectMapper = new ObjectMapper(); public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); private Class<T> clazz; @@ -51,16 +44,5 @@ String str = new String(bytes, DEFAULT_CHARSET); return JSON.parseObject(str, clazz, JSONReader.Feature.SupportAutoType); } public void setObjectMapper(ObjectMapper objectMapper) { Assert.notNull(objectMapper, "'objectMapper' must not be null"); this.objectMapper = objectMapper; } protected JavaType getJavaType(Class<?> clazz) { return TypeFactory.defaultInstance().constructType(clazz); } } src/main/java/com/ruoyi/framework/config/RedisConfig.java
@@ -8,11 +8,6 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.data.redis.serializer.StringRedisSerializer; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; /** * redis配置 @@ -31,11 +26,6 @@ template.setConnectionFactory(connectionFactory); FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); serializer.setObjectMapper(mapper); // 使用StringRedisSerializer来序列化和反序列化redis的key值 template.setKeySerializer(new StringRedisSerializer());