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实现缓存》对你有帮助,请点赞、收藏,并留下你的观点哦!