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

自定義緩存註解

發布時間: 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工程師高薪訓練營》課程,該課程提供全面的知識體系和內推大廠服務。建議感興趣的朋友也查看。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:593
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:888
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:581
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:765
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:684
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1012
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:255
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:113
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:806
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:712