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的改变相关推荐

  1. SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!

    △Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 387 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) 最近,有很多人在传说 ...

  2. SpringBoot 2.0 系列003 -- 自定义Parent

    为什么80%的码农都做不了架构师?>>>    SpringBoot 2.0 系列003 --自定义Parent 默认我们使用SpringBoot的方式是通过SB的parent项目的 ...

  3. spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0

    2019独角兽企业重金招聘Python工程师标准>>> 读书笔记 spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0 贴码云 https ...

  4. Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台

    Jeecg-Boot 2.0.0 版本发布,前后端分离快速开发平台 Jeecg-Boot项目简介 源码下载 升级日志 Issues解决 v1.1升级到v2.0不兼容地方 系统截图 Jeecg-Boot ...

  5. JEECG V3.0 版本(jbpm5 工作流自定义+WEB UI快速开发库+代码生成器) spring mvc +hibernate

    简要说明 JEECG V3.0版本推翻了原有SSH2架构,采用SpringMVC+Hibernate+Spring jdbc基础架构, 采用面向声明的开发模式,基于泛型方式编写极少代码即可实现复杂的数 ...

  6. 产品周报第30期|编辑器支持自定义写作模板;MarkDown编辑器接入质量分检测功能;CSDN APP V5.2.0版本发布

    hello,大家好,这里是「CSDN产品周报」第30期.本次更新主要涉及博客.首页和CSDN APP,欢迎大家详细了解和使用. 博客产品体验优化 一.编辑器新增自定义模板创建功能 每个人都有自己的写作 ...

  7. Springboot 2.0.x Redis缓存Key生成器,自定义生成器

    文章目录 Springboot 2.0.x Redis缓存Key生成器,自定义生成器 1.默认的Key生成策略 2.重写生成器 3.注册自定义生成器 4.应用 5.在Redis 中Key的显示 Spr ...

  8. 毕业设计基于Springboot框架作业查重系统2.0版本

    作业查重系统2.0版本 文章目录 作业查重系统2.0版本 前言 一.摘要 二.相关技术 1.系统框架 2.查重功能简介 3.相似度检测算法简介 4.系统功能架构图 三.系统功能运行图 1.登录 2.学 ...

  9. Android Studio 3.0+ 版本的自定义lint检查

    Android Studio 3.0+ 版本的自定义lint检查 定义LintModule 开发lint规则 lint库依赖 新建log检查规则 LogDetactor IssueRegistry 注 ...

最新文章

  1. Ubuntu 常用命令收集
  2. linux 下串口编程VTIME和VMIN的设置
  3. SSM整合pom.xml和导包
  4. RxSwift笔记七其他操作符
  5. Spring Security原理与应用
  6. ubantu下安装Nginx
  7. DOM操作获取标签方法、数据类型
  8. HDU 6446 Tree and Permutation(赛后补题)
  9. rsa加解密的内容超长的问题解决
  10. 年轻人,你的小米和宜家,要在一起了
  11. 适合程序员的健身方法(转)
  12. jogbuild-common.xml:17: Cannot find /home/tsit/tio-software/jogamp/gluegen/make/gluegen-cpptasks.xml
  13. ASP入门(一)环境的搭建
  14. 计算机电脑如何快捷粘贴,电脑粘贴快捷键在哪里【详细介绍】
  15. 关于springboot的配置注册循序问题
  16. 京东云linux面板脚本,Surge 开启脚本功能后,京东自动签到总结
  17. docker版mongodb数据同步到elasticsearch
  18. python统计小说人物_python统计喜欢的小说主角出场次数
  19. Linux:VSS、RSS、PSS和USS的图解说明
  20. BlueStacks不仅支持x86和ARM处理器,新版BlueStacks并不是单纯的实现虚拟化,而是运行整个Android系统

热门文章

  1. 呈现模式_曝光 | 福特Mustang Mach-E将提供三种驾驶模式
  2. Windows下Goland的环境搭建
  3. TensorFlow2.0:模型的保存与加载
  4. 第一:如何解决robot framework log.html中的中文乱码问题
  5. 服务器电源维修哪里便宜,服务器电源维修
  6. spss连接mysql_spssstatistics19.0配置odbc连接远程oracle数据库
  7. python hashlib_python hashlib模块
  8. zookeper安装_zookeeper安装单机模式
  9. [Ext JS 7]7.6 内存泄露及处理
  10. SFML 与 VS2015 的安装配置