From c9fdff7d45ae118eac10397d8f34661e9f2e968a Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 一月 2022 10:28:18 +0800
Subject: [PATCH] 礼金bug修复

---
 service-lijin/src/main/java/com/ks/lijin/config/RedisConfig.java |   80 ++++++++++++++++++++++++++--------------
 1 files changed, 52 insertions(+), 28 deletions(-)

diff --git a/service-lijin/src/main/java/com/ks/lijin/config/RedisConfig.java b/service-lijin/src/main/java/com/ks/lijin/config/RedisConfig.java
index ad5f0ac..8f9903a 100644
--- a/service-lijin/src/main/java/com/ks/lijin/config/RedisConfig.java
+++ b/service-lijin/src/main/java/com/ks/lijin/config/RedisConfig.java
@@ -1,48 +1,72 @@
 package com.ks.lijin.config;
 
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
 import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
 
 @Configuration
 public class RedisConfig {
+
+    @Value("${spring.redis.host}")
+    private String addr;
+    @Value("${spring.redis.port}")
+    private int port;
+    @Value("${spring.redis.timeout}")
+    private String timeout;
+    @Value("${spring.redis.password}")
+    private String auth;
+    @Value("${spring.redis.database}")
+    private int database;
+    @Value("${spring.redis.jedis.pool.max-total}")
+    private int maxTotal;
+    @Value("${spring.redis.jedis.pool.max-idle}")
+    private int maxIdle;
+    @Value("${spring.redis.jedis.pool.test_on_borrow}")
+    private boolean testOnBorrow;
+
+
     Logger log = LoggerFactory.getLogger(RedisConfig.class);
 
-    @Value("${redis.host}")
-    private String host;
-
-    @Value("${redis.port}")
-    private int port;
-
-    @Value("${redis.password}")
-    private String password;
-
-    @Value("${redis.timeout}")
-    private int timeout;
-
-    @Value("${redis.jedis.pool.max-wait}")
-    private int maxWait;
-
-    @Value("${redis.jedis.pool.max-idle}")
-    private int maxIdle;
-
-    @Value("${redis.jedis.pool.max-total}")
-    private int maxTotal;
-    @Value("${redis.database}")
-    private int database;
+    @Bean
+    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
+        RedisTemplate<String, Object> template = new RedisTemplate<>();
+        template.setConnectionFactory(factory);
+        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
+        ObjectMapper om = new ObjectMapper();
+        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        jackson2JsonRedisSerializer.setObjectMapper(om);
+        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
+        // key閲囩敤String鐨勫簭鍒楀寲鏂瑰紡
+        template.setKeySerializer(stringRedisSerializer);
+        // hash鐨刱ey涔熼噰鐢⊿tring鐨勫簭鍒楀寲鏂瑰紡
+        template.setHashKeySerializer(stringRedisSerializer);
+        // value搴忓垪鍖栨柟寮忛噰鐢╦ackson
+        template.setValueSerializer(jackson2JsonRedisSerializer);
+        // hash鐨剉alue搴忓垪鍖栨柟寮忛噰鐢╦ackson
+        template.setHashValueSerializer(jackson2JsonRedisSerializer);
+        template.afterPropertiesSet();
+        return template;
+    }
 
 
     @Bean
     public JedisPool jedisPool() {
-        GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
-        poolConfig.setMaxWaitMillis(maxWait);
-        poolConfig.setMaxIdle(maxIdle);
+        JedisPoolConfig poolConfig = new JedisPoolConfig();
         poolConfig.setMaxTotal(maxTotal);
-        JedisPool pool = new JedisPool(poolConfig, host, port, timeout, password, database);
-        return pool;
+        poolConfig.setMaxIdle(maxIdle);
+        poolConfig.setTestOnBorrow(testOnBorrow);
+        return new JedisPool(poolConfig, addr, port, Integer.parseInt(timeout.replace("ms", "").trim()), auth, database);
     }
 }

--
Gitblit v1.8.0