springboot 2.0版本自定义ReidsCacheManager的改变
1. 问题发现
在1.0版本中,我们配置redis的cacheManager是这种方式:
//缓存管理器@Beanpublic 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自定义配置
/*** 缓存管理器*/@Beanpublic CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {//初始化一个RedisCacheWriterRedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);//设置CacheManager的值序列化方式为json序列化RedisSerializer<Object> jsonSerializer = new GenericJackson2JsonRedisSerializer();RedisSerializationContext.SerializationPair<Object> pair = RedisSerializationContext.SerializationPair.fromSerializer(jsonSerializer);RedisCacheConfiguration defaultCacheConfig=RedisCacheConfiguration.defaultCacheConfig().serializeValuesWith(pair);//设置默认超过期时间是30秒defaultCacheConfig.entryTtl(Duration.ofSeconds(30));//初始化RedisCacheManagerreturn new RedisCacheManager(redisCacheWriter, defaultCacheConfig);}
上面的代码中,还设置了CacheManager
的值序列化方式,所以有了这个配置,可以直接在注解的形式中实现json的redis存储而不用再去多写配置。
作者:FantJ
链接:https://www.jianshu.com/p/20366ecf12ce
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
springboot 2.0版本自定义ReidsCacheManager的改变相关推荐
- SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!
△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 387 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) 最近,有很多人在传说 ...
- SpringBoot 2.0 系列003 -- 自定义Parent
为什么80%的码农都做不了架构师?>>> SpringBoot 2.0 系列003 --自定义Parent 默认我们使用SpringBoot的方式是通过SB的parent项目的 ...
- spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0
2019独角兽企业重金招聘Python工程师标准>>> 读书笔记 spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0 贴码云 https ...
- Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台
Jeecg-Boot 2.0.0 版本发布,前后端分离快速开发平台 Jeecg-Boot项目简介 源码下载 升级日志 Issues解决 v1.1升级到v2.0不兼容地方 系统截图 Jeecg-Boot ...
- JEECG V3.0 版本(jbpm5 工作流自定义+WEB UI快速开发库+代码生成器) spring mvc +hibernate
简要说明 JEECG V3.0版本推翻了原有SSH2架构,采用SpringMVC+Hibernate+Spring jdbc基础架构, 采用面向声明的开发模式,基于泛型方式编写极少代码即可实现复杂的数 ...
- 产品周报第30期|编辑器支持自定义写作模板;MarkDown编辑器接入质量分检测功能;CSDN APP V5.2.0版本发布
hello,大家好,这里是「CSDN产品周报」第30期.本次更新主要涉及博客.首页和CSDN APP,欢迎大家详细了解和使用. 博客产品体验优化 一.编辑器新增自定义模板创建功能 每个人都有自己的写作 ...
- Springboot 2.0.x Redis缓存Key生成器,自定义生成器
文章目录 Springboot 2.0.x Redis缓存Key生成器,自定义生成器 1.默认的Key生成策略 2.重写生成器 3.注册自定义生成器 4.应用 5.在Redis 中Key的显示 Spr ...
- 毕业设计基于Springboot框架作业查重系统2.0版本
作业查重系统2.0版本 文章目录 作业查重系统2.0版本 前言 一.摘要 二.相关技术 1.系统框架 2.查重功能简介 3.相似度检测算法简介 4.系统功能架构图 三.系统功能运行图 1.登录 2.学 ...
- Android Studio 3.0+ 版本的自定义lint检查
Android Studio 3.0+ 版本的自定义lint检查 定义LintModule 开发lint规则 lint库依赖 新建log检查规则 LogDetactor IssueRegistry 注 ...
最新文章
- Ubuntu 常用命令收集
- linux 下串口编程VTIME和VMIN的设置
- SSM整合pom.xml和导包
- RxSwift笔记七其他操作符
- Spring Security原理与应用
- ubantu下安装Nginx
- DOM操作获取标签方法、数据类型
- HDU 6446 Tree and Permutation(赛后补题)
- rsa加解密的内容超长的问题解决
- 年轻人,你的小米和宜家,要在一起了
- 适合程序员的健身方法(转)
- jogbuild-common.xml:17: Cannot find /home/tsit/tio-software/jogamp/gluegen/make/gluegen-cpptasks.xml
- ASP入门(一)环境的搭建
- 计算机电脑如何快捷粘贴,电脑粘贴快捷键在哪里【详细介绍】
- 关于springboot的配置注册循序问题
- 京东云linux面板脚本,Surge 开启脚本功能后,京东自动签到总结
- docker版mongodb数据同步到elasticsearch
- python统计小说人物_python统计喜欢的小说主角出场次数
- Linux:VSS、RSS、PSS和USS的图解说明
- BlueStacks不仅支持x86和ARM处理器,新版BlueStacks并不是单纯的实现虚拟化,而是运行整个Android系统
热门文章
- 呈现模式_曝光 | 福特Mustang Mach-E将提供三种驾驶模式
- Windows下Goland的环境搭建
- TensorFlow2.0:模型的保存与加载
- 第一:如何解决robot framework log.html中的中文乱码问题
- 服务器电源维修哪里便宜,服务器电源维修
- spss连接mysql_spssstatistics19.0配置odbc连接远程oracle数据库
- python hashlib_python hashlib模块
- zookeper安装_zookeeper安装单机模式
- [Ext JS 7]7.6 内存泄露及处理
- SFML 与 VS2015 的安装配置