用了Redisson的Spring Boot Starter搞的我都想重写个
在对接一个小程序推送的框架时,需要将 access_token 存储到 Redis 中,框架中提供了存储逻辑,只需要将 RedissonClient 对象传进去即可。 框架内部在用 Redisson 的 RBucket 进行数据存储时报错了,原因是 fst 里面的一个方法找不到了,这一看就是版本的问题。
Redisson 中依赖的 fst 是 2.57,这个版本是没问题,主要是目前项目的依赖版本降低了,原因是 dubbo 中依赖了低版本,影响了原有的版本。
解决方案很简单,强制申请要使用的版本即可,今天主要不是讲这个如何解决的,是想说下另一些使用不太方便的点。
默认编码
根据官方文档的说明,默认编码是 jackson, 从我们上面的错误来看,是用了 fst 编码才报的错。而项目中没有单独设置过编码方式,所以这里文档是不是没及时更新?
在构造 Config 对象里面看到了默认的编码设置:
配置编码
如果你想换一种编码方式,本来想着用了 redisson-spring-boot-starter,应该直接可以通过配置指定对应的编码方式。
翻翻源码一看并没有这些配置信息,看文档得知,你可以自定义一个 yml 文件来配置相关信息,然后指定这个 yml 文件的路径。
spring:
redis:
redisson:
config: classpath:redisson.yml
在 Starter 包中自动装配的逻辑如下,就是根据配置路径加载整个文件的内容,然后转换成 Config 对象。
所以如果我要替换默认的编码方式,就需要自定义一个 redisson.yml 文件进行配置,说实话不方便,最方便的还是直接配置,比如
spring.redis.redisson.codec=org.redisson.codec.JsonJacksonCodec
另一点在于,如果需要自定义文件来进行配置,对于多环境的区分不是很好,需要每个环境对应一个配置文件,然后在配置中心中指定使用哪个自定义的文件。
spring.redis.redisson.config: classpath:redisson-beta.yml
或者
spring.redis.redisson.config: classpath:redisson-product.yml
然后 redisson.yml 这里面的文件内容不能放到配置中心里去,加载不到。如果内容要放进去,需要改动加载配置的代码,就不能通过 classpath 去读取了,需要从配置中心去读取。
如果实在觉得不好用就重写个吧,也挺快的,哈哈!
关于作者:尹吉欢,简单的技术爱好者,《Spring Cloud 微服务-全栈技术与案例解析》, 《Spring Cloud 微服务 入门 实战与进阶》作者, 公众号猿天地发起人。
我整理了一份很全的学习资料,感兴趣的可以微信搜索「猿天地」,回复关键字 「学习资料」获取我整理好了的 Spring Cloud,Spring Cloud Alibaba,Sharding-JDBC 分库分表,任务调度框架 XXL-JOB,MongoDB,爬虫等相关资料。
用了Redisson的Spring Boot Starter搞的我都想重写个的更多相关文章
- 最详细的自定义Spring Boot Starter开发教程
1. 前言 随着Spring的日渐臃肿,为了简化配置.开箱即用.快速集成,Spring Boot 横空出世. 目前已经成为 Java 目前最火热的框架了.平常我们用Spring Boot开发web应用 ...
- Spring Boot Starter 开发指南
Spring Boot Starter是什么? 依赖管理是任何复杂项目的关键部分.以手动的方式来实现依赖管理不太现实,你得花更多时间,同时你在项目的其他重要方面能付出的时间就会变得越少. Spring ...
- Spring Boot Starter 介绍
http://www.baeldung.com/spring-boot-starters 作者:baeldung 译者:http://oopsguy.com 1.概述 依赖管理是任何复杂项目的关键部分 ...
- spring -boot s-tarter 详解
Starter POMs是可以包含到应用中的一个方便的依赖关系描述符集合.你可以获取所有Spring及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符.例如,如果你想使用Sprin ...
- Spring Boot (一): Spring Boot starter自定义
前些日子在公司接触了spring boot和spring cloud,有感于其大大简化了spring的配置过程,十分方便使用者快速构建项目,而且拥有丰富的starter供开发者使用.但是由于其自动化配 ...
- SpringBoot 之Spring Boot Starter依赖包及作用
Spring Boot 之Spring Boot Starter依赖包及作用 spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. spri ...
- Spring boot starter pom的依赖关系说明
Spring Boot 通过starter依赖为项目的依赖管理提供帮助.starter依赖起始就是特殊的maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖. sp ...
- Spring Boot Starter列表
转自:http://blog.sina.com.cn/s/blog_798f713f0102wiy5.html Spring Boot Starter 基本的一共有43种,具体如下: 1)spring ...
- 创建自己的Spring Boot Starter
抽取通用模块作为项目的一个spring boot starter.可参照mybatis的写法. IDEA创建Empty Project并添加如下2个module,一个基本maven模块,另一个引入sp ...
随机推荐
- 新手学习C语言/C++编程你所必须要了解的知识!从计算机原理开始!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- Docker安装以及运行第一个HelloWorld
Docker安装以及运行第一个HelloWorld
- kinaba 安装踩坑: FATAL Error: [elasticsearch.url]: definition for this key is missing 转
安装 https://www.jianshu.com/p/875457cb8da6 操作系统:Linux kibana 版本: 7.4.0 1. 在/etc/yum.repos.d/ 下新建 ...
- spring boot:用redis+lua限制短信验证码的发送频率(spring boot 2.3.2)
一,为什么要限制短信验证码的发送频率? 1,短信验证码每条短信都有成本制约, 肯定不能被刷接口的乱发 而且接口被刷会影响到用户的体验, 影响服务端的正常访问, 所以既使有图形验证码等的保护, 我们仍然 ...
- Vue3 来了,Vue3 开源商城项目重构计划正式启动!
我打算用 Vue3 写一个商城项目,目前已经开始着手开发,测试完成后正式开源到 GitHub,让大家也可以用现成的 Vue3 大型商城项目源码来练练手. Vue 3.0 来了,我们该做些什么? Vue ...
- Udacity的C++编程练习: Python转C++
练习 1 在机器人定位的课程中,Sebastian Thrun 已经带领你了解了一维机器人传感和运动的 Python 代码.最后你得到了一个 sense() 函数,它基于传感器的测量数据来更新概率.你 ...
- python打印水仙花数的个人总结
面试过程中,提到python,面试最多的就是让你现场写代码实现水仙花.冒泡.九九乘法表,这些面试方法旨在校验面试者的python基础和思维逻辑. 先从水仙花说起,水仙花是指一个n位正整数(n>= ...
- vue-cli中使用全局less变量
1.执行 vue add style-resources-loader 命令,选择less 2.在 vue.config.js中添加配置,注意将路径更改为自己存放less变量文件的地址 // 全局使用 ...
- django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2)
django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2) 关注公众号"轻松学编程"了解更多. 原因 这个unicode编码,是python ...
- P4683 [IOI2008] Type Printer 打印机
题意描述 [IOI2008] Type Printer 打印机 几百年前的 IOI 的题目还是很好的呀. 给你一个 诡异的 打印机,它只能用已有的字符来打印,而且必须每一个都用到.(这岂不是活字印刷术 ...