欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot Redis配置Fastjson進行序列化和反序列化實現(xiàn)

 更新時間:2019年10月25日 16:17:47   作者:碼農(nóng)云帆哥  
這篇文章主要介紹了SpringBoot Redis配置Fastjson進行序列化和反序列化實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

FastJson是阿里開源的一個高性能的JSON框架,F(xiàn)astJson數(shù)據(jù)處理速度快,無論序列化(把JavaBean對象轉(zhuǎn)化成Json格式的字符串)和反序列化(把JSON格式的字符串轉(zhuǎn)化為Java Bean對象),都是當之無愧的fast;功能強大(支持普通JDK類,包括javaBean, Collection, Date 或者enum);零依賴(沒有依賴其他的任何類庫)。

1、寫一個自定義序列化類

/**
 * 自定義序列化類
 * @param <T>
 */
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 (null == t) {
      return new byte[0];
    }
    return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
  }

  @Override
  public T deserialize(byte[] bytes) throws SerializationException {
    if (null == bytes || bytes.length <= 0) {
      return null;
    }
    String str = new String(bytes, DEFAULT_CHARSET);
    return (T) JSON.parseObject(str, clazz);
  }

}

2、寫一個Redis配置類

@Configuration
public class RedisConfiguration {

  @Bean
  public RedisTemplate<Object, Object> redisTemplate(
      RedisConnectionFactory redisConnectionFactory) {
    RedisTemplate<Object, Object> template = new RedisTemplate<>();
    //使用fastjson序列化
    FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
    // value值的序列化采用fastJsonRedisSerializer
    template.setValueSerializer(fastJsonRedisSerializer);
    template.setHashValueSerializer(fastJsonRedisSerializer);
    // key的序列化采用StringRedisSerializer
    template.setKeySerializer(new StringRedisSerializer());
    template.setHashKeySerializer(new StringRedisSerializer());
    template.setConnectionFactory(redisConnectionFactory);
    return template;
  }
}

3、Student類

@Data
public class Student {
  private Integer studentId;
  private String studentName;
}

4、pom.xml引入redis和fastjson的依賴,application.yml配置文件別忘了配置Redis的地址。

5、BootRedisApplication啟動類

@SpringBootApplication
public class BootRedisApplication {

  public static void main(String[] args) {
    ConfigurableApplicationContext
        context = SpringApplication.run(BootRedisApplication.class, args);
    
    Student student = new Student();
    student.setStudentId(101);
    student.setStudentName("學(xué)生A");
    
    RedisTemplate cRedisTemplate = context.getBean("redisTemplate", RedisTemplate.class);
    cRedisTemplate.opsForValue().set("student-1", student);

    context.close();
  }
}

6、查看Redis的數(shù)據(jù)

{"@type":"com.example.bootredis.Student","studentId":101,"studentName":"學(xué)生A"}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用MyBatis進行不同條件的like模糊查詢的方法

    利用MyBatis進行不同條件的like模糊查詢的方法

    這篇文章主要介紹了利用MyBatis進行不同條件的like模糊查詢,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java map.getOrDefault()方法的用法詳解

    Java map.getOrDefault()方法的用法詳解

    這篇文章主要介紹了Java map.getOrDefault()方法的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • java實現(xiàn)隨機生成驗證碼圖片

    java實現(xiàn)隨機生成驗證碼圖片

    這篇文章主要為大家詳細介紹了java實現(xiàn)隨機生成驗證碼圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突問題

    Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突

    這篇文章主要介紹了Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突問題,通過注釋掉2.0引入的倆包,直接引入3.0,文中結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-10-10
  • Java 信息摘要加密MD2、MD4、MD5實現(xiàn)詳解

    Java 信息摘要加密MD2、MD4、MD5實現(xiàn)詳解

    這篇文章主要介紹了Java 信息摘要加密MD2、MD4、MD5實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • springboot+mybatis如何屏蔽掉mybatis日志

    springboot+mybatis如何屏蔽掉mybatis日志

    這篇文章主要介紹了springboot+mybatis如何屏蔽掉mybatis日志問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • spring關(guān)于組件的注入及獲取流程場景分析

    spring關(guān)于組件的注入及獲取流程場景分析

    這篇文章主要介紹了spring關(guān)于組件的注入及獲取流程場景分析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-07-07
  • 詳解什么是Java線程池的拒絕策略?

    詳解什么是Java線程池的拒絕策略?

    今天給大家總結(jié)一下線程池的拒絕策略,文中有非常詳細的介紹及代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • SpringMVC中的HttpServletRequestWrapper使用解析

    SpringMVC中的HttpServletRequestWrapper使用解析

    這篇文章主要介紹了SpringMVC中的HttpServletRequestWrapper使用解析,HttpServletRequestWrapper 采用裝飾者模式對HttpServletRequest進行包裝,我們可以通過繼承HttpServletRequestWrapper類去重寫getParameterValues,getParameter等方法,需要的朋友可以參考下
    2024-01-01
  • ArrayList刪除集合中某一屬性相同的元素方法(推薦)

    ArrayList刪除集合中某一屬性相同的元素方法(推薦)

    下面小編就為大家?guī)硪黄狝rrayList刪除集合中某一屬性相同的元素方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論