博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot -- 2.0版本自定义ReidsCacheManager的改变
阅读量:6974 次
发布时间:2019-06-27

本文共 1745 字,大约阅读时间需要 5 分钟。

1. 问题发现

在1.0版本中,我们配置redis的cacheManager是这种方式:

//缓存管理器    @Bean    public CacheManager cacheManager(@SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {        RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);        //设置缓存过期时间        cacheManager.setDefaultExpiration(10000);        return cacheManager;    }    //缓存管理器复制代码

然而在2.0版本中,这个代码直接报错,原因是RedisCacheManager取消了1.0版本中的public RedisCacheManager(RedisOperations redisOperations)的这个构造方法,所以我们无法再用RedisTemplate作为参数来自定义CacheManager

下面看一看两个版本的差别:

1.0 版本的CacheManager构造器

2.0 版本的CacheManager构造器

RedisCacheWriter提供了对Redis的set、setnx、get等命令的访问权限,可以由多个缓存实现共享,并负责写/读来自Redis的二进制数据。

RedisCacheConfiguration根据名字都能想到它是提供redis的配置。

2. springboot2.0 中 CacheManager自定义配置

/**     * 缓存管理器     */    @Bean    public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {        //初始化一个RedisCacheWriter        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);        //设置CacheManager的值序列化方式为json序列化        RedisSerializer jsonSerializer = new GenericJackson2JsonRedisSerializer();        RedisSerializationContext.SerializationPair pair = RedisSerializationContext.SerializationPair                                                    .fromSerializer(jsonSerializer);        RedisCacheConfiguration defaultCacheConfig=RedisCacheConfiguration.defaultCacheConfig()                                                    .serializeValuesWith(pair);        //设置默认超过期时间是30秒        defaultCacheConfig.entryTtl(Duration.ofSeconds(30));        //初始化RedisCacheManager        return new RedisCacheManager(redisCacheWriter, defaultCacheConfig);    }复制代码

上面的代码中,还设置了CacheManager的值序列化方式,所以有了这个配置,可以直接在注解的形式中实现json的redis存储而不用再去多写配置。

转载地址:http://xfrsl.baihongyu.com/

你可能感兴趣的文章
提高代码质量 CheckStyle FindBugs PMD
查看>>
【Java】HashTable和HashMap区别
查看>>
shell技巧之以逆序形式打印行
查看>>
Java面试题集(六)
查看>>
DCHP是什么意思
查看>>
go异常处理原则
查看>>
窗体传值
查看>>
跟我一起云计算(3)——hbase
查看>>
vim与外部文件的粘帖复制
查看>>
Entity Framework DBFirst尝试
查看>>
pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)
查看>>
【BZOJ】1600: [Usaco2008 Oct]建造栅栏(dp)
查看>>
linux下启动oracle
查看>>
【原创】开源Math.NET基础数学类库使用(02)矩阵向量计算
查看>>
SqlHelper
查看>>
前端画面-下拉后滚动
查看>>
golang使用http client发起get和post请求示例
查看>>
remoting生命周期
查看>>
[zz]malloc()和calloc()
查看>>
Sylius – 100% 免费和开源的电子商务解决方案
查看>>