解決redis序列化java8 LocalDateTime錯(cuò)誤的問題

redis序列化選擇方式

<!-- 緩存序列化方式 -->
    <!--對(duì)key的默認(rèn)序列化器懦胞。默認(rèn)值是StringSerializer-->
    <bean id="keySerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" />
    <!--是對(duì)value的默認(rèn)序列化器,默認(rèn)值是取自DefaultSerializer的JdkSerializationRedisSerializer铐拐。-->
    <bean id="valueSerializer" class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" >
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory"   ref="connectionFactory" />
        <!-- 這里修改了redis默認(rèn)的序列化方式 -->
        <property name="keySerializer" ref="keySerializer" />
        <property name="valueSerializer" ref="valueSerializer" />
        <property name="hashKeySerializer" ref="keySerializer" />
        <property name="hashValueSerializer" ref="valueSerializer" />
    </bean>

要序列化class Demo

public class Demo {
    private Long id;
    private String name;
    private LocalDateTime time;
    ......
    }

操作存入redis中

@Test
public void test1() {
     Demo demo = new Demo();
     demo.setId(10000000001L);
     demo.setName("測試序列化");
     demo.setTime(LocalDateTime.now());
    redisTemplate.opsForValue().set("test", demo);
 }

在redis中查看

{
  "@class": "com.karmay3d.Demo",
  "id": 10000000001,
  "name": "測試序列化",
  "time": {
    "dayOfMonth": 15,
    "dayOfWeek": "TUESDAY",
    "dayOfYear": 227,
    "month": "AUGUST",
    "monthValue": 8,
    "year": 2017,
    "hour": 14,
    "minute": 45,
    "second": 51,
    "nano": 921000000,
    "chronology": {
      "@class": "java.time.chrono.IsoChronology",
      "id": "ISO",
      "calendarType": "iso8601"
    }
  }
}

LocalDateTime 存儲(chǔ)的方式有問題。然后再從redis中取出Demo

@Test
    public void test2() {
        Demo demo = redisTemplate.opsForValue().get("test");
        System.out.println(demo.getId());
    }

報(bào)異常

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Can not construct instance of java.time.LocalDateTime: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: [B@68d651f2; line: 1, column: 81] (through reference chain: com.karmay3d.Demo["time"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of java.time.LocalDateTime: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: [B@68d651f2; line: 1, column: 81] (through reference chain: com.karmay3d.Demo["time"])
......
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of java.time.LocalDateTime: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: [B@68d651f2; line: 1, column: 81] (through reference chain: com.karmay3d.Demo["time"])
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:270)
    at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:1456)
......

這個(gè)問題真的是糾結(jié)了幾天让网。霉颠。。解決辦法
mavan需要的jar包

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>${jackson.version}</version>
</dependency>

LocalDateTime屬性加上注解
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)

public class Demo {
    private Long id;
    private String name;
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime time;
    ......
    }

redis再次存入之后結(jié)構(gòu)

{
  "@class": "com.karmay3d.Demo",
  "id": 10000000001,
  "name": "測試序列化",
  "time": [2017,8,15,14,57,37,525000000]
}

之后反序列化就可以取出Demo對(duì)象了帝璧。

解決這個(gè)問題查找的問答

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市湿刽,隨后出現(xiàn)的幾起案子的烁,更是在濱河造成了極大的恐慌,老刑警劉巖诈闺,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渴庆,死亡現(xiàn)場離奇詭異,居然都是意外死亡雅镊,警方通過查閱死者的電腦和手機(jī)襟雷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仁烹,“玉大人耸弄,你說我怎么就攤上這事∽跨郑” “怎么了计呈?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵砰诵,是天一觀的道長。 經(jīng)常有香客問我捌显,道長茁彭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任扶歪,我火速辦了婚禮理肺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘击罪。我一直安慰自己哲嘲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布媳禁。 她就那樣靜靜地躺著,像睡著了一般画切。 火紅的嫁衣襯著肌膚如雪竣稽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天霍弹,我揣著相機(jī)與錄音毫别,去河邊找鬼。 笑死典格,一個(gè)胖子當(dāng)著我的面吹牛岛宦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耍缴,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼砾肺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了防嗡?” 一聲冷哼從身側(cè)響起变汪,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚁趁,沒想到半個(gè)月后裙盾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡他嫡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年番官,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钢属。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡徘熔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出署咽,到底是詐尸還是另有隱情近顷,我是刑警寧澤生音,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站窒升,受9級(jí)特大地震影響缀遍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饱须,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一域醇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蓉媳,春花似錦譬挚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玩荠,卻和暖如春漆腌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阶冈。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工闷尿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人女坑。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓填具,卻偏偏與公主長得像,于是被迫代替她去往敵國和親匆骗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劳景,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)绰筛,斷路器枢泰,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,827評(píng)論 6 342
  • 世代的訴求在體內(nèi)回蕩 于是 你望向呼喚聲聲不息的遠(yuǎn)方 于是 當(dāng)十月的清涼漸起 你振翅飛向素未謀面的故鄉(xiāng) 迢迢千里 ...
    飛樹閱讀 278評(píng)論 0 0
  • 月隱孤星寒,影闌珊铝噩。衰草殘荷西風(fēng)里衡蚂,愁眼相看。獨(dú)憑欄骏庸,遠(yuǎn)山黯毛甲,倦鳥哀哀無枝還,古剎青燈菩提淚具被,大夢醒玻募,世事安。
    lhm2008lhm閱讀 282評(píng)論 0 0
  • 窗外一姿,風(fēng)聲呼呼作響七咧。我心有所思跃惫,未眠。 友人說艾栋,當(dāng)一個(gè)人去醫(yī)院的時(shí)候爆存,才發(fā)現(xiàn)有家人在身邊陪伴真好。 ...
    櫻達(dá)莉閱讀 190評(píng)論 0 0