Toggle navigation
架构师课程
极客时间
开源
文章
博客
SpringCloud
CloudAlibaba
SpringBoot
关于
登录
|
注册
支付宝扫一扫帮助发展吧~
微信扫一扫帮助发展吧~
更多技术分享尽在公众号 ~ 关注下吧!
用了Redisson的Spring Boot Starter搞的我都想重写个
尹吉欢
2020-11-20
0条评论
786人阅读
版权声明:转载请先联系作者并标记出处。
java
去注册
去登录
登录后发表
去注册
去登录
登录后发表
在对接一个小程序推送的框架时,需要将 access_token 存储到 Redis 中,框架中提供了存储逻辑,只需要将 RedissonClient 对象传进去即可。 框架内部在用 Redisson 的 RBucket 进行数据存储时报错了,原因是 fst 里面的一个方法找不到了,这一看就是版本的问题。 Redisson 中依赖的 fst 是 2.57,这个版本是没问题,主要是目前项目的依赖版本降低了,原因是 dubbo 中依赖了低版本,影响了原有的版本。 解决方案很简单,强制申请要使用的版本即可,今天主要不是讲这个如何解决的,是想说下另一些使用不太方便的点。 ## 默认编码 根据官方文档的说明,默认编码是 jackson, 从我们上面的错误来看,是用了 fst 编码才报的错。而项目中没有单独设置过编码方式,所以这里文档是不是没及时更新?  在构造 Config 对象里面看到了默认的编码设置:  ## 配置编码 如果你想换一种编码方式,本来想着用了 redisson-spring-boot-starter,应该直接可以通过配置指定对应的编码方式。 翻翻源码一看并没有这些配置信息,看文档得知,你可以自定义一个 yml 文件来配置相关信息,然后指定这个 yml 文件的路径。 ```plain spring: redis: redisson: config: classpath:redisson.yml ``` 在 Starter 包中自动装配的逻辑如下,就是根据配置路径加载整个文件的内容,然后转换成 Config 对象。  所以如果我要替换默认的编码方式,就需要自定义一个 redisson.yml 文件进行配置,说实话不方便,最方便的还是直接配置,比如 ```plain spring.redis.redisson.codec=org.redisson.codec.JsonJacksonCodec ``` 另一点在于,如果需要自定义文件来进行配置,对于多环境的区分不是很好,需要每个环境对应一个配置文件,然后在配置中心中指定使用哪个自定义的文件。 ```plain 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,爬虫等相关资料。