更换package且完成了相关配置, Cacheutil方法的缓存值没有被序列化存储

Blade 未结 3 1106
bluerose
bluerose 剑圣 2022-06-16 10:50

之前发过一个求助(见:https://sns.bladex.cn/q-7444.html),当时老大让我去排查一下相关点。当时有点忙,今天继续尝试了下。

我的项目是更换了package的,但是对应的配置也进行了调整。目前依然发现使用Cacheutil方法存储的redis值没有进行序列化。

image.png

如果不配置扫描 “org.springblade”则调用CacheUtil进行redis存储是进行了序列化的。

反而增加为  @ComponentScan({"org.springblade","com.zxz"}) 后,调用CacheUtil进行redis存储没有进行序列化。


1.使用BladeRedis存储进行了序列化。依然发现此问题。如果是 @ComponentScan({"org.springblade","com.zxz"}) ,则是明文。如果去掉"org.springblade"则是正确加密了的值。

2.项目没有定义其他的CacheUtil

3.Debug了执行到的CacheManager,但是不清楚如何去分析。截图如下

image.png

希望能获取帮助。谢谢

3条回答


  • 看了你的debug信息 感觉不是cacheManager的问题,所以需要检查你自己的配置


    主要检查如图的条件


    还有 你还可以配置jdk的序列化方式 看看是否能够正常序列化

    image.png

    回答: 2022-06-16 11:27

    因为根据源码,如果截图中的条件不符合 就会使用GenericJackson2JsonRedisSerializer 这个序列化(也就是json方式)

    0 讨论(0)
  • 2022-06-16 14:20

    兄弟,blade-tool我没有改过的。你这个截图,我的代码和你是一样的。

    主要问题是 componentscan 增加org.springblade这个包就没有正常序列化,去掉扫描这个包就正常序列化。

    作者追问:2022-06-20 20:07

    你到bladex-biz的blade-demo目录下测试看看,blade-demo也是自定义包名加了componentScan,如果你在原生的工程测试完也是同样的问题,请发一个邮件给我们说明一下,然后我们来进行排查,我们的邮箱:bladejava@qq.com

    0 讨论(0)
  • 2022-06-20 20:08

    @bluerose 你到bladex-biz的blade-demo目录下测试看看,blade-demo也是自定义包名加了componentScan,如果你在原生的工程测试完也是同样的问题,请发一个邮件给我们说明一下,然后我们来进行排查,我们的邮箱:bladejava@qq.com

    0 讨论(2)
提交回复