1. 程式人生 > >Spring-boot-redis序列化Date資料型別

Spring-boot-redis序列化Date資料型別

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Can not deserialize value of type java.util.Date from String “2017-8-30 12:00:00”: not a valid representation (error: Failed to parse Date value ‘2017-8-30 12:00:00’: Unparseable date: “2017-8-30 12:00:00”)

@Bean
    public RedisTemplate<String, String> redisTemplate
(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); /** * om.setDateFormat(DateFormat.getDateTimeInstance());//格式化時間 * 直接使用這種方式格式化時間的話,在Windows和在Linux上格式化後的時間格式是不一樣的, * 因為DateFormat.getDateTimeInstance()具有預設語言環境的預設格式化風格。 * Windows:2017-8-30 12:00:00 * Linux:Aug 30, 2017 12:00:00 PM * 這樣會出現這種情況: * 在Windows上序列化之後,在Linux上反序列化時識別不了,導致反序列化失敗 * 提示如下: * org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Can not deserialize value of type java.util.Date from String "2017-8-30 12:00:00": * not a valid representation (error: Failed to parse Date value '2017-8-30 12:00:00': Unparseable date: "2017-8-30 12:00:00") * 解決辦法: * om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")); */
// om.setDateFormat(DateFormat.getDateTimeInstance());//格式化時間 om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return
template; }

相關推薦

Spring-boot-redis序列Date資料型別

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Can not deserialize value of type java.util.

解決spring boot redis序列key-value亂碼\xac\xed\x00\x05t\x00

本文轉自:https://blog.csdn.net/ljj_9/article/details/79370027 最近使用spring-data-redis RedisTemplate 操作redis時發現儲存在redis中的key不是設定的string值, 前面還多出了許

Spring Data Redis 序列

mar ext 速度 亦或 access 序列化機制 png 現在 圖片 在Spring中使用的Redis緩存數據,可以通過RedisTemplate直接操作,也可以通過@Cacheable註解實現緩存(可參照另一篇文章的介紹:Spring Cachable Key的定義及

spring整合redis,序列物件,以及websocket依賴注入

      最近業餘在使用websocket開發一個聊天系統,打算使用redis儲存聊天記錄。       首先匯入spring整合redis的包spring-data-redis-1.6.2.RELEASE.jar, redis java驅動包jedis-2.9.0.ja

關於Spring Jackson 反序列Date時遇到的問題

Jackson對於date的反序列化只支援幾種,如果不符合預設格式則會報一下錯誤 具體支援:("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss

Spring Jackson 反序列Date時遇到的問題

Jackson對於date的反序列化只支援幾種,如果不符合預設格式則會報一下錯誤 org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from

Spring Boot 2.0版本 Jackson全域性轉化long型別為String,解決jackson序列時long型別缺失精度問題

說明 在傳遞long型別到前臺時,如果long型別的數值比較長,會出現精度丟失的問題。以下是解決辦法。 前提 版本:Spring Boot 2.0及以上 序列化工具Jackson 解決辦法 import org.springframework.boot.aut

談談spring-boot-starter-data-redis序列

在上一篇中[springboot 2.X 整合redis](https://www.cnblogs.com/homeSicker/p/13177730.html)中提到了在spring-boot-starter-data-redis中使用JdkSerializationRedisSerializerl來實現序

基於本地redis、protostuff序列對於資料層的優化及java中對於泛型的使用

此次對於redis、protostuff的應用是在一個高併發的秒殺系統中實現的。 在高併發的秒殺系統的優化中主要有以下幾個方面: 1.對於獲取秒殺地址的介面的優化 每次獲取秒殺介面我們都要訪問資料庫,在高併發的系統中我們可以使用redis快取進行優化,不需要每次都訪問資料庫,從

spring-redis序列

  (一)spring data redis 提供了多種可選擇策略(RedisSerializer) JdkSerializationRedisSerializer:POJO物件的存取場景,使用JDK本身序列化機制,將pojo類通過ObjectInputStream

Spring-boot 】FastJson對json資料進行解析(型別轉換)

序列化序列化就是指 把JavaBean物件轉成JSON格式的字串。將Map轉成JSON將List<Map>轉成JSON。自定義JavaBean User轉成JSON。String objJson = JSON.toJSONString(Object object)

spring-boot 介面請求之Date、LocalDate、LocalDateTime日期型別轉換處理

搭建完一個spring-boot的介面服務後,可以在前段通過ajax非同步請求後臺介面資料,一般ajax通過傳遞json物件給後臺介面,後臺接收資料轉化為Bean物件,處理邏輯完成後,將返回的資料轉為json回送給前臺呼叫者; 1.前臺ajax引數格式為: var par

Redis序列儲存Java集合List等自定義型別

在“Redis學習總結和相關資料”http://blog.csdn.net/fansunion/article/details/49278209這篇文章中,對Redis做了總體的介紹,演示了Jedis和SpringDataRedis訪問Redis的相關例子。對於基本的CRUD差不多夠了。隨著專案中使用場景的增

spring-data-redis序列實踐筆記

JdkSerializationRedisSerializer:使用JDK的序列化手段(serializable介面,ObjectInputStrean,ObjectOutputStream),資料以位元組流儲存StringRedisSerializer:字串編碼,資料以string儲存JacksonJso

自定義redis序列工具

我們 utils 字節數 pac keys ted ive onu 問題 redis一個優點就是可以將數據寫入到磁盤中。 我們知道寫入磁盤的數據實際上都是以字節(0101這樣的二進制數據)的形式寫入的。 這意味著如果我們要將一個對象寫入磁盤,就必須將這個對象序列化。 jav

redis 序列存入對象

rac ioe tin pan input trace cnblogs bject oid redis 序列化存入對象 //序列化 public static byte [] serialize(Object obj){ ObjectOutpu

spring boot redis分布式鎖

supported 分布式架構 tsig utils ali 成了 down eva -- 隨著現在分布式架構越來越盛行,在很多場景下需要使用到分布式鎖。分布式鎖的實現有很多種,比如基於數據庫、 zookeeper 等,本文主要介紹使用 Redis 做分布式鎖的方式,並封

redis序列對象操作

com sql iss stat nts 字符 project esc sage 在項目開發過程中,一些經常用到但又基本不變的對象信息我們可以把它緩存起來,這樣可以減少我們操作msql等數據庫的時間 緩存對象信息最常用的有兩種,一種是將對象信息轉成json形式的字符串緩存起

spring boot redis

redis spring bootdependency <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp

Redis 序列方式StringRedisSerializer、FastJsonRedisSerializer和KryoRedisSerializer

out public ack 我們 must instance key) strings initial 當我們的數據存儲到Redis的時候,我們的鍵(key)和值(value)都是通過Spring提供的Serializer序列化到數據庫的。RedisTemplate默認使