Commit 7bd81d03126c2e17145672a9062b80ee801d2f33

Authored by YunaiV
1 parent 8e67753a

初始化 redis 配置类

ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java deleted
1   -package com.ruoyi.framework.config;
2   -
3   -import com.alibaba.fastjson.JSON;
4   -import com.alibaba.fastjson.serializer.SerializerFeature;
5   -import com.fasterxml.jackson.databind.JavaType;
6   -import com.fasterxml.jackson.databind.ObjectMapper;
7   -import com.fasterxml.jackson.databind.type.TypeFactory;
8   -import org.springframework.data.redis.serializer.RedisSerializer;
9   -import org.springframework.data.redis.serializer.SerializationException;
10   -import com.alibaba.fastjson.parser.ParserConfig;
11   -import org.springframework.util.Assert;
12   -
13   -import java.nio.charset.Charset;
14   -
15   -/**
16   - * Redis使用FastJson序列化
17   - *
18   - * @author ruoyi
19   - */
20   -public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> {
21   - @SuppressWarnings("unused")
22   - private ObjectMapper objectMapper = new ObjectMapper();
23   -
24   - public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
25   -
26   - private Class<T> clazz;
27   -
28   - static {
29   - ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
30   - }
31   -
32   - public FastJson2JsonRedisSerializer(Class<T> clazz) {
33   - super();
34   - this.clazz = clazz;
35   - }
36   -
37   - @Override
38   - public byte[] serialize(T t) throws SerializationException {
39   - if (t == null) {
40   - return new byte[0];
41   - }
42   - return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
43   - }
44   -
45   - @Override
46   - public T deserialize(byte[] bytes) throws SerializationException {
47   - if (bytes == null || bytes.length <= 0) {
48   - return null;
49   - }
50   - String str = new String(bytes, DEFAULT_CHARSET);
51   -
52   - return JSON.parseObject(str, clazz);
53   - }
54   -
55   - public void setObjectMapper(ObjectMapper objectMapper) {
56   - Assert.notNull(objectMapper, "'objectMapper' must not be null");
57   - this.objectMapper = objectMapper;
58   - }
59   -
60   - protected JavaType getJavaType(Class<?> clazz) {
61   - return TypeFactory.defaultInstance().constructType(clazz);
62   - }
63   -}
ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java deleted
1   -package com.ruoyi.framework.config;
2   -
3   -import org.springframework.cache.annotation.CachingConfigurerSupport;
4   -import org.springframework.cache.annotation.EnableCaching;
5   -import org.springframework.context.annotation.Bean;
6   -import org.springframework.context.annotation.Configuration;
7   -import org.springframework.data.redis.connection.RedisConnectionFactory;
8   -import org.springframework.data.redis.core.RedisTemplate;
9   -import org.springframework.data.redis.serializer.StringRedisSerializer;
10   -import com.fasterxml.jackson.annotation.JsonAutoDetect;
11   -import com.fasterxml.jackson.annotation.JsonTypeInfo;
12   -import com.fasterxml.jackson.annotation.PropertyAccessor;
13   -import com.fasterxml.jackson.databind.ObjectMapper;
14   -import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
15   -
16   -/**
17   - * redis配置
18   - *
19   - * @author ruoyi
20   - */
21   -@Configuration
22   -@EnableCaching
23   -public class RedisConfig extends CachingConfigurerSupport {
24   - @Bean
25   - @SuppressWarnings(value = {"unchecked", "rawtypes"})
26   - public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
27   - RedisTemplate<Object, Object> template = new RedisTemplate<>();
28   - template.setConnectionFactory(connectionFactory);
29   -
30   - FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);
31   -
32   - ObjectMapper mapper = new ObjectMapper();
33   - mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
34   - mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
35   - serializer.setObjectMapper(mapper);
36   -
37   - template.setValueSerializer(serializer);
38   - // 使用StringRedisSerializer来序列化和反序列化redis的key值
39   - template.setKeySerializer(new StringRedisSerializer());
40   - template.afterPropertiesSet();
41   - return template;
42   - }
43   -}
src/main/java/cn/iocoder/dashboard/framework/apollo/internals/DBConfigRepository.java
... ... @@ -34,7 +34,7 @@ public class DBConfigRepository extends AbstractConfigRepository {
34 34 }
35 35  
36 36 private final ConfigUtil m_configUtil;
37   - private PropertiesFactory propertiesFactory;
  37 + private final PropertiesFactory propertiesFactory;
38 38 private final String m_namespace;
39 39  
40 40 /**
... ...
src/main/java/cn/iocoder/dashboard/framework/redis/config/RedisConfig.java 0 → 100644
  1 +package cn.iocoder.dashboard.framework.redis.config;
  2 +
  3 +import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
  4 +import org.springframework.context.annotation.Bean;
  5 +import org.springframework.context.annotation.Configuration;
  6 +import org.springframework.data.redis.connection.RedisConnectionFactory;
  7 +import org.springframework.data.redis.core.RedisTemplate;
  8 +import org.springframework.data.redis.serializer.RedisSerializer;
  9 +
  10 +@Configuration
  11 +public class RedisConfig {
  12 +
  13 + @Bean
  14 + public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
  15 + // 创建 RedisTemplate 对象
  16 + RedisTemplate<String, Object> template = new RedisTemplate<>();
  17 + // 设置 RedisConnection 工厂。😈 它就是实现多种 Java Redis 客户端接入的秘密工厂。感兴趣的胖友,可以自己去撸下。
  18 + template.setConnectionFactory(factory);
  19 + // 使用 String 序列化方式,序列化 KEY 。
  20 + template.setKeySerializer(RedisSerializer.string());
  21 + // 使用 JSON 序列化方式(库是 FastJSON ),序列化 VALUE 。
  22 + template.setValueSerializer(new GenericFastJsonRedisSerializer());
  23 + return template;
  24 + }
  25 +
  26 +}
... ...