<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      項目中使用redis做緩存序列化踩坑

      示例代碼

      自定義的RedisTemplate,核心序列化器為GenericJackson2JsonRedisSerializer,其中使用了 jackson 來將對象轉為 json 字符串。

      import org.springframework.data.redis.connection.DefaultStringRedisConnection;
      import org.springframework.data.redis.connection.RedisConnection;
      import org.springframework.data.redis.connection.RedisConnectionFactory;
      import org.springframework.data.redis.core.RedisTemplate;
      import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
      import org.springframework.data.redis.serializer.RedisSerializer;
      
      public class ObjectRedisTemplate extends RedisTemplate<String, Object> {
          public ObjectRedisTemplate() {
              RedisSerializer<Object> objectRedisSerializer = new GenericJackson2JsonRedisSerializer();
              setKeySerializer(RedisSerializer.string());
              setValueSerializer(objectRedisSerializer);
              setHashKeySerializer(RedisSerializer.string());
              setHashValueSerializer(objectRedisSerializer);
          }
          public ObjectRedisTemplate(RedisConnectionFactory connectionFactory) {
              this();
              setConnectionFactory(connectionFactory);
              afterPropertiesSet();
          }
          protected RedisConnection preProcessConnection(RedisConnection connection, boolean existingConnection) {
              return new DefaultStringRedisConnection(connection);
          }
      }
      

      問題描述

      項目中使用了自定義的 RedisTemplate,redis中值的序列化方式為 json,但是包含了類名,生成的 json 如下

      {
        "@class": "com.imooc.User",
        "userName": "lisi",
        "address": {
          "@class": "com.imooc.Address",
          "province": "山東"
        }
      }
      
      1. 如果 A 服務將 User 對象保存到 redis 中,但是 User 類增加了字段,這個時候 B 服務從 redis 讀取會報錯,默認是不忽略不認識的屬性。
      2. 如果兩個服務的 User 類所屬的 package 不同,也會讀取 redis 失敗

      擴展性很不好

      解決方法

      使用 Spring 中定義好的 StringRedisTemplate,它使用的序列化器為 StringRedisSerializer,我們在存到 redis 之前需要先自己將 Bean 對象轉為 json 字符串(自已控制)。這樣 redis 中存儲的就是簡單的 json 字符串,讀取也不會有亂七八糟的問題。

      posted @ 2025-04-08 21:57  strongmore  閱讀(68)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产女人喷潮视频在线观看| 久久午夜无码免费| 亚洲国产熟女一区二区三区| 亚洲AV成人一区国产精品| 男女性高爱潮免费网站| 最新亚洲人成网站在线影院| 中文字幕一区二区三区久久蜜桃| 亚洲欧美人成电影在线观看| 中文字幕精品亚洲二区| 一区二区福利在线视频| 最新av中文字幕无码专区| 各种少妇wbb撒尿| 日本一卡2卡3卡4卡无卡免费| 99久久无色码中文字幕| 国产精品久久久久久久久鸭| 91青青草视频在线观看的| 国产一二三五区不在卡| 国产成人精品97| 国产亚洲精品成人aa片新蒲金| 久久国产精品久久久久久| 亚洲天码中文字幕第一页| 亚洲理论在线A中文字幕| 欧美极品色午夜在线视频| 午夜成人精品福利网站在线观看| 亚洲人成网站77777在线观看| 女同亚洲精品一区二区三| 国产精品店无码一区二区三区| 日韩精品一区二区都可以| 久久国产精品精品国产色婷婷| 国产无遮挡又黄又大又爽| www插插插无码免费视频网站| 亚洲一区二区av高清| 中文字幕精品亚洲二区| 国产精品日日摸夜夜添夜夜添2021 | 国产国产午夜福利视频| 国产精品久久久久无码网站| 色一伊人区二区亚洲最大| 精品人妻中文无码av在线| 亚洲一区二区三级av| 中文午夜乱理片无码| 西西人体大胆444WWW|