old mode 100644
new mode 100755
|  |  |  | 
|---|
|  |  |  | 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: songww | 
|---|
|  |  |  | * @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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | package com.genersoft.iot.vmp.utils.redis; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSON; | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSONReader; | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSONWriter; | 
|---|
|  |  |  | import org.springframework.data.redis.serializer.RedisSerializer; | 
|---|
|  |  |  | import org.springframework.data.redis.serializer.SerializationException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.nio.charset.Charset; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @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, JSONWriter.Feature.WriteClassName, JSONWriter.Feature.WritePairAsJavaBean).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 JSON.parseObject(str, clazz, JSONReader.Feature.SupportAutoType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|