springboot容器加载完毕执行某一个方法
问题:
最近做项目(项目使用的是springboot)的时候,数据库有一个配置参数表,每次都要查询数据库去做数据转换,这样每次查询数据库感觉不太友好,后来写了一个方法项目启动完成后立即执行此方法,将配置加载到内存中,避免频繁查询数据库造成的性能问题。
当服务启动时需要做一些初始化的操作springboot提供了两个接口供我们使用ApplicationRunner和CommandLineRunner
两者都可以实现项目启动初始化的工作,如果有多个实现类可以使用Order注解,控制各个实现类的加载顺序。Order值越小越先加载。
至于两者的区别,主要是参数不同,前者的参数为ApplicationArguments,后者为数组,个人认为前者更牛一些,因为可以获取更多的命令参数。
解决办法:
话不多说上代码
这里我创建了三个类,分别使用order指定了执行顺序。
下面是控制台的输出:
可以看到这三个类按着order指定的顺序执行了。
1.01^356=37.8
0.99^365=0.03
0.99^365=0.03