赞
踩
1.1、使用自定义FastJSON来序列化你的对象 注意如果不配置白名单地址将会出现com.alibaba.fastjson.JSONException: autoType is not support具体可以看看我的转载文章https://blog.csdn.net/qq_37892957/article/details/89303903
- public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> {
- public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
-
- private Class<T> clazz;
-
- public FastJson2JsonRedisSerializer(Class<T> clazz) {
- super();
- this.clazz = clazz;
- }
- //配置白名单 地址是实体类包地址
- static {
- ParserConfig.getGlobalInstance().addAccept("com.bean.springcloudcommon.model");
- }
- @Override
- public byte[] serialize(T o) throws SerializationException {
- if (o == null) {
- return new byte[0];
- }
- return JSON.toJSONString(o, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
- }
-
- @Override
- public T deserialize(byte[] bytes) throws SerializationException {
- if (bytes == null || bytes.length <= 0) {
- return null;
- }
- String str = new String(bytes, DEFAULT_CHARSET);
- return (T) JSON.parseObject(str, clazz);
- }
- }

1.2、配置RedisConfig
- @Configuration
- public class RedisConfig {
- @Bean
- public RedisSerializer fastJson2JsonRedisSerializer() {
- return new FastJson2JsonRedisSerializer<Object>(Object.class);
- }
-
- @Bean
- public RedisTemplate initRedisTemplate(RedisConnectionFactory redisConnectionFactory, RedisSerializer fastJson2JsonRedisSerializer) throws Exception {
- RedisTemplate redisTemplate = new RedisTemplate();
- redisTemplate.setConnectionFactory(redisConnectionFactory);
- redisTemplate.setKeySerializer(new StringRedisSerializer());
- redisTemplate.setValueSerializer(fastJson2JsonRedisSerializer);
- redisTemplate.setHashKeySerializer(new StringRedisSerializer());
- redisTemplate.setHashValueSerializer(fastJson2JsonRedisSerializer);
- redisTemplate.setDefaultSerializer(new StringRedisSerializer());
- redisTemplate.afterPropertiesSet();
- return redisTemplate;
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。