启动项目时需要初始化redis数据因为SpringUtil NullPointerException

Blade 未结 1 534
mach
mach 2022-06-27 11:36

一、该问题的重现步骤是什么?

1. image.png

2.需求是需要在项目每次启动初始化redis。写两个方法初始化redis,一个是用来初始化数据,一个是将mysql的查询到的数据存到缓存中,但是启动后会因为SpringUtil报错


3.


二、你期待的结果是什么?实际看到的又是什么?

   

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex-boot 2.9.1  win10

四、请提供详细的错误堆栈信息,这很重要。

image.png

五、若有更多详细信息,请在下面提供。


1条回答
  •  admin
    admin (楼主)
    2022-06-27 18:14

    你这么写,SpringUtil还没有加载就执行,所以报错了。你需要等待SpringUtil初始化完毕再执行,具体写法可以参考如下,在初始化结束后再进行操作。

    image.png

    作者追问:2022-06-27 18:14

    再请教一下,业务需要设置定时任务,定时任务的需要信息是从数据库缓存到redis中的,所以才有一开始需要每次启动需要先清空redis里的数据再获取。但是定时任务或许数据时候也调用到了CacheUtil,同样会报错。有什么更优的办法吗?还是只能重写afterSingletonsInstantiated方法?

    0 讨论(0)
提交回复