失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【SpringBoot】Redis配置CacheManager实现缓存

【SpringBoot】Redis配置CacheManager实现缓存

时间:2021-10-08 12:07:44

相关推荐

【SpringBoot】Redis配置CacheManager实现缓存

1.唠嗑

最近学了网上的springboot1.X的springboot整合redis实现缓存,自己在练习的时候才发现springboot2.x已经不支持教程里面的配置cacheManager了,网上找了很久,都失败了。最后在b站有一个视频看见了,实验成功了。

最终的成果是springboot整合Jpa、redis,配置redisconfig,实现缓存。

2.概念

3.springboot2.x配置cacheManager

找了很久,可以用的,希望能帮助到大家。

@Configurationpublic class RedisConfig{@Bean@SuppressWarnings("all")public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();//连接工厂template.setConnectionFactory(factory);// 序列化配置 解析任意对象Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);// json序列化利用ObjectMapper进行转义ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); //指定要序列化的域,filed,get和set、Any是包括private// 和publicom.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);//jackson2JsonRedisSerializer.setObjectMapper(om);// value序列化方式采用jacksontemplate.setValueSerializer(jackson2JsonRedisSerializer);// hash的value序列化方式采用jacksontemplate.setHashValueSerializer(jackson2JsonRedisSerializer);// 2.序列化String类型StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();// key采用String的序列化方式template.setKeySerializer(stringRedisSerializer);// hash的key也采用String的序列化方式template.setHashKeySerializer(stringRedisSerializer);template.afterPropertiesSet();return template;}@Beanpublic CacheManager cacheManager(RedisConnectionFactory factory) {RedisCacheManager redisCacheManager =RedisCacheManager.builder(factory).cacheDefaults(defaultCacheConfig(10000)).transactionAware().build();return redisCacheManager;}private RedisCacheConfiguration defaultCacheConfig(Integer second) {Jackson2JsonRedisSerializer<Object> serializer =new Jackson2JsonRedisSerializer<>(Object.class);ObjectMapper mapper = new ObjectMapper();mapper.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY);mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);serializer.setObjectMapper(mapper);RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(second)).serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(serializer)).disableCachingNullValues();return config;}}

4.说明

这个代码的例子在我的gitee上 地址为/wistchen/spring-boot-learn有兴趣的可以下载下来看看哦。

springboot整合Jpa学习来自how2java网站,但是该网站的例子是springboot1.x有些方法过时了,下面是我解决的网址,先替大家采坑了。

/ssllkkyyaa/article/details/96967503 SpringBoot上2.x JPA/ljincheng/p/12330749.html SpringBoot 上2.x JPA/huoji555/article/details/103606786 PageRequest 过期/Mirt_/article/details/80934312 2.x对缓存cacheManage有影响/EveningWind/p/11617271.html/deoppressoliber/article/details/89204839 默认不适用jsp/weixin_43538859/article/details/85772742 redis连接失效

如果觉得《【SpringBoot】Redis配置CacheManager实现缓存》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。