FastJsonRedis.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package jnpf.config;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.serializer.SerializerFeature;
  4. import org.springframework.data.redis.serializer.RedisSerializer;
  5. import org.springframework.data.redis.serializer.SerializationException;
  6. import java.nio.charset.Charset;
  7. /**
  8. *
  9. * @author JNPF开发平台组
  10. * @version V3.1.0
  11. * @copyright 引迈信息技术有限公司
  12. * @date 2021/3/16 10:51
  13. */
  14. public class FastJsonRedis<T> implements RedisSerializer<T>
  15. {
  16. public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
  17. private Class<T> clazz;
  18. public FastJsonRedis(Class<T> clazz)
  19. {
  20. super();
  21. this.clazz = clazz;
  22. }
  23. @Override
  24. public byte[] serialize(T t) throws SerializationException
  25. {
  26. if (t == null)
  27. {
  28. return new byte[0];
  29. }
  30. return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
  31. }
  32. @Override
  33. public T deserialize(byte[] bytes) throws SerializationException
  34. {
  35. if (bytes == null || bytes.length <= 0)
  36. {
  37. return null;
  38. }
  39. String str = new String(bytes, DEFAULT_CHARSET);
  40. return (T) JSON.parseObject(str, clazz);
  41. }
  42. }