因爲redis儲存數據默認使用的時jdkjson,有兩大問題:
No1:存儲的Object(Entity)需要實現序列化接口(implements Serializable);
No2:存儲的數據中有一些其他編碼,導致可讀性差;
所以爲了解決以上的兩個問題:
將默認的jdkjson改爲jsckson2json。代碼如下:
package mall.config;
import client.AccessToken;
import client.RedisAccessTokenCache;
import org.springframework.beans.factory.annotation.Autowired;
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.GenericJackson2JsonRedisSerializer;
@Configuration
public class redisConfig {
@Autowired
private RedisTemplate<String, AccessToken> redisTemplate;
@Bean
public RedisTemplate<String, AccessToken> redisTemplate(RedisConnectionFactory cf) {
RedisTemplate<String, AccessToken> redisTemplate = new RedisTemplate<String, AccessToken>();
redisTemplate.setConnectionFactory(cf);
GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
return redisTemplate;
}
@Bean
public RedisAccessTokenCache redisAccessTokenCache(){
RedisAccessTokenCache redisAccessTokenCache = new RedisAccessTokenCache();
redisAccessTokenCache.setRedisTemplate(redisTemplate);
return redisAccessTokenCache;
}
}