| package com.genersoft.iot.vmp.utils.redis;  | 
|   | 
| import java.nio.charset.Charset;  | 
|   | 
| import org.springframework.data.redis.serializer.RedisSerializer;  | 
| import org.springframework.data.redis.serializer.SerializationException;  | 
|   | 
| import com.alibaba.fastjson.JSON;  | 
| import com.alibaba.fastjson.serializer.SerializerFeature;  | 
|   | 
| /**      | 
|  * @description:使用fastjson实现redis的序列化     | 
|  * @author: swwheihei  | 
|  * @date:   2020年5月6日 下午8:40:11       | 
|  */  | 
| public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {  | 
|   | 
|     public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");  | 
|        | 
|     private Class<T> clazz;  | 
|    | 
|     public FastJsonRedisSerializer(Class<T> clazz) {  | 
|         super();  | 
|         this.clazz = clazz;  | 
|     }  | 
|    | 
|     @Override  | 
|     public byte[] serialize(T t) throws SerializationException {  | 
|         if (t == null) {  | 
|             return new byte[0];  | 
|         }  | 
|         return JSON.toJSONString(t, 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);  | 
|     }  | 
| }  |