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默認使