當前位置:首頁 » 文件管理 » 自定義緩存註解

自定義緩存註解

發布時間: 2025-05-10 23:40:06

㈠ 自定義rediscachemanager

在項目的Redis配置類RedisConfig中,自定義名為cacheManager的Bean組件,用於Redis緩存管理。

java

@Bean

public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {

創建String和JSON格式序列化對象,分別用於緩存數據key和value的轉換。

RedisSerializer strSerializer = new StringRedisSerializer();

Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class);

解決查詢緩存轉換異常問題,使用ObjectMapper進行序列化。

ObjectMapper om = new ObjectMapper();

設置ObjectMapper的可見性和非最終類型,以適應序列化。

om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

定製序列化方式,使用序列化對象對key和value進行序列化。

RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()

.entryTtl(Duration.ofDays(1))

.serializeKeysWith(RedisSerializationContext.SerializationPair

.fromSerializer(strSerializer))

.serializeValuesWith(RedisSerializationContext.SerializationPair

.fromSerializer(jacksonSeial))

.disableCachingNullValues();

構建緩存管理器,設置緩存默認配置。

RedisCacheManager cacheManager = RedisCacheManager

.builder(redisConnectionFactory).cacheDefaults(config).build();

返回自定義的緩存管理器。

}

自定義的RedisCacheManager中,通過`@Bean`註解實現,包含對緩存數據key和value的序列化方式定製。使用`StringRedisSerializer`和`Jackson2JsonRedisSerializer`分別進行字元串和JSON格式的序列化,同時設定緩存有效期為1天。

完成自定義後,可進行測試以驗證效果。使用自定義序列化機制的RedisCacheManager時,實體類無需實現序列化介面。

學習上述內容,可參考拉勾教育的《Java工程師高薪訓練營》課程,該課程提供全面的知識體系和內推大廠服務。建議感興趣的朋友也查看。

熱點內容
戰神升天和戰神3哪個吃配置 發布:2025-07-13 07:05:57 瀏覽:808
資料庫挪表 發布:2025-07-13 07:03:45 瀏覽:283
10m下載上傳速度 發布:2025-07-13 06:46:30 瀏覽:174
酷狗android 發布:2025-07-13 06:37:29 瀏覽:724
php上傳資料庫中 發布:2025-07-13 06:32:44 瀏覽:89
雲伺服器網卡不能使用 發布:2025-07-13 06:12:45 瀏覽:741
php正則圖片替換圖片 發布:2025-07-13 06:12:43 瀏覽:606
更換伺服器對ip影響 發布:2025-07-13 06:07:53 瀏覽:528
sql聲明變數並賦值 發布:2025-07-13 06:07:51 瀏覽:909
java判斷類型 發布:2025-07-13 06:02:10 瀏覽:18