当前位置:首页 » 文件管理 » 自定义缓存注解

自定义缓存注解

发布时间: 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工程师高薪训练营》课程,该课程提供全面的知识体系和内推大厂服务。建议感兴趣的朋友也查看。

热点内容
linux访问hive 发布:2025-07-13 01:00:34 浏览:386
中欧压缩机 发布:2025-07-13 00:53:13 浏览:832
国内我的世界电脑版服务器 发布:2025-07-13 00:51:31 浏览:898
qq黄钻设置隐身访问 发布:2025-07-13 00:50:56 浏览:100
苹果和安卓哪个看小说方便 发布:2025-07-13 00:20:25 浏览:756
网址访问量查询 发布:2025-07-13 00:13:25 浏览:976
thinkphp关掉缓存 发布:2025-07-12 23:44:01 浏览:87
互动平台源码 发布:2025-07-12 23:42:15 浏览:11
矩形密码是什么 发布:2025-07-12 23:41:15 浏览:407
kvm存储技术包括 发布:2025-07-12 23:41:15 浏览:951