xueyiming 9 mesiacov pred
rodič
commit
2a193fcc52

+ 6 - 21
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/config/RedisTemplateConfig.java

@@ -1,9 +1,5 @@
 package com.tzld.longarticle.recommend.server.config;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
 import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -16,8 +12,6 @@ import org.springframework.data.redis.connection.lettuce.LettuceClientConfigurat
 import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
 import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializer;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
 
 @Configuration
@@ -45,7 +39,7 @@ public class RedisTemplateConfig {
     }
 
     @Bean(name = "redisTemplate")
-    public RedisTemplate<String, Object> getRedisTemplate(@Qualifier("redisFactory") RedisConnectionFactory factory) {
+    public RedisTemplate<String, String> getRedisTemplate(@Qualifier("redisFactory") RedisConnectionFactory factory) {
         return buildRedisTemplateByString(factory);
     }
 
@@ -55,24 +49,15 @@ public class RedisTemplateConfig {
      * @param factory
      * @return
      */
-    public RedisTemplate<String, Object> buildRedisTemplateByString(RedisConnectionFactory factory) {
-        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+    public RedisTemplate<String, String> buildRedisTemplateByString(RedisConnectionFactory factory) {
+        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
         redisTemplate.setConnectionFactory(factory);
-        redisTemplate.setValueSerializer(redisSerializer());
+        // key的序列化类型 保证可读性
         redisTemplate.setKeySerializer(new StringRedisSerializer());
+        redisTemplate.setValueSerializer(new StringRedisSerializer());
         redisTemplate.setHashKeySerializer(new StringRedisSerializer());
-        redisTemplate.setHashValueSerializer(redisSerializer());
-        redisTemplate.afterPropertiesSet();
+        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
         return redisTemplate;
     }
 
-    public RedisSerializer<Object> redisSerializer() {
-        //创建JSON序列化器
-        ObjectMapper objectMapper = new ObjectMapper();
-        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-        //必须设置,否则无法序列化实体类对象
-        objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
-        return new GenericJackson2JsonRedisSerializer(objectMapper);
-    }
-
 }

+ 7 - 7
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/exterior/impl/AccessTokenServiceImpl.java

@@ -23,26 +23,26 @@ public class AccessTokenServiceImpl implements AccessTokenService {
     private static final String ACCESS_TOKEN_LIST = "access_token_list";
 
     @Autowired
-    private RedisTemplate<String, Object> redisTemplate;
+    private RedisTemplate<String, String> redisTemplate;
 
     @Override
     public CommonResponse<AccessTokenVo> getAccessToken(AccessTokenParam param) throws RuntimeException {
         if (param == null || StringUtils.isEmpty(param.getSecret())) {
-            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"未找到 secret");
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR, "未找到 secret");
         }
         if (!SecretEnum.contains(param.getSecret())) {
-            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"secret 不存在");
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR, "secret 不存在");
         }
         AccessTokenVo accessTokenVo = new AccessTokenVo();
-        String accessToken = (String) redisTemplate.opsForValue().get(param.getSecret());
+        String accessToken = redisTemplate.opsForValue().get(param.getSecret());
         if (StringUtils.isNotEmpty(accessToken)) {
-            Long expire = redisTemplate.getExpire(param.getSecret(), TimeUnit.SECONDS);
+            Long expire = Long.parseLong(String.valueOf(redisTemplate.getExpire(param.getSecret(), TimeUnit.SECONDS)));
             accessTokenVo.setAccessToken(accessToken);
             accessTokenVo.setExpires(expire);
             if (redisTemplate.opsForHash().size(ACCESS_TOKEN_LIST) > 20) {
                 Map<Object, Object> entries = redisTemplate.opsForHash().entries(ACCESS_TOKEN_LIST);
                 entries.forEach((k, v) -> {
-                    Long timestamp = (Long) v;
+                    long timestamp = Long.parseLong((String) v);
                     if (System.currentTimeMillis() / 1000 > timestamp) {
                         redisTemplate.opsForHash().delete(ACCESS_TOKEN_LIST, k);
                     }
@@ -66,7 +66,7 @@ public class AccessTokenServiceImpl implements AccessTokenService {
         if (o == null) {
             return false;
         }
-        Long timestamp = (Long) o;
+        long timestamp = Long.parseLong((String) o);
         if (System.currentTimeMillis() / 1000 > timestamp) {
             redisTemplate.opsForHash().delete(ACCESS_TOKEN_LIST, accessToken);
             return false;