用了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 ...
随机推荐
- Linux操作系统的基本介绍
01 操作系统的概述介绍 操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控制输入设备与输出 ...
- C语言/C++编译环境的设置!有的人还没开始就卡住了!
本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器. 文本编辑器 这将用于输入您的程序.文本编辑器包括 Windows Notepad. ...
- 如果你想or即将成为一名程序员,那你需要知道这些东西!上岗须知~
前两天公司学院的同学给我看了一下即将入职的应届生的数量,真是不少.感慨一下,一批新人即将到来,而自己又老去了一岁.码农是一个必将终身学习的职业.而相关的知识越来越多了.接下来该学什么?接下来该干什么? ...
- php-fpm 高并发 参数调整 转
工作中经常会遇到会给客户配置服务器,其中有的客户还会有并发量要求,其中也会必须要用负载均衡承载压力的.增加服务器数量肯定能有效的提升服务器承载能力,但只有根据目前已有配置设置好单台服务器才能更好的发挥 ...
- swoole为什么不建议使用static和global
$http = new swoole_http_server("0.0.0.0", 9501); $http->on("request", functio ...
- selenium 浏览器标签切换
from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import ...
- Django创建表时报错django.db.utils.InternalError: (1366问题解决记录
问题出现 执行Python manage.py makemigrations生成创建表的py文件 执行python manage.py migrate创建数据表 界面出现报错 问题原因 网上搜索原因, ...
- 子网划分和VLAN
子网划分 IP地址的结构和分类 根据tcp/ip协议,连接在Internet上的每个设备都必须有一个IP地址,它是一个32位二进制数,为了方便人类识别,我们将它用点分十进制表示,每8位分为一段. IP ...
- pychartdir模块安装
python模块pychartdir导入问题 在迁移别人写好的脚本时,发现pychartdir没有导入,脚本执行报错.以下是报错内容: [modps@LGJF-ZYC5-MMSC-WEB02 ~]$ ...
- 关于linux epoll的了解
使用select/poll模型假设一台服务器需要支持100w的并发连接,在_FD_SETSIZE为1024时,则至少需要1k个进程 除了进程间的上下文切换的时间消耗外,从内核/用户空间,大量的无脑内存 ...