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

自定义缓存注解

发布时间: 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