我们可以发现若依启动时执行了一些sql
我们可以安装一个插件mybatis log free 来更好的进行sql查看 ,安装后需要修改一下若依的日志配置如下
查看日志,我们发现执行了三个方法(),分别查询了一些数据。
以第二个方法为例子,我们发现了这个注解@PostConstruct
Spring Boot:@PostConstruct虽好,也要慎用
如果应用有一些初始化操作,有以下几点建议:
轻量的逻辑可放在Bean的 @PostConstruct方法中
耗时长的逻辑如果放在 @PostConstruct方法中,可使用独立线程执行
初始化操作放在CommandLineRunner或ApplicationRunner的实现组件中
这里说初始化了缓存,我们打开redis,发现了这个,发现前两个方法都是初始化缓存到redis
loadingDictCache()
我们可以简单分析一下这个方法
逻辑比较简单,就是先查询出sys_dict_data的所有数据 然后使用stream()流 group by进行分组,以类dict_type为key,分组后的数据为value,然后放到redis当中
注意这里使用的DictUtils工具类所在模块不在springboot环境下,因此获取redis的bean时使用了SpringUtils工具类来获取
loadingConfigCache()
这个比较简单,只是查询然后把数据放到了redis
3.那么,第三个方法呢?其实就是定时器的初始化。
4.除此之外,项目启动时还做了一件事:详情
若依框架解读(前后端分离版)—— 1.Spring Security相关配置(@Anonymous注解)