SpringBoot启动后执行指定代码

在项目启动后,我们需要执行一些指定的代码,比如起一个线程去做一些事情等等。
在SpringBoot中给我们提供了2个接口:CommandLineRunner和ApplicationRunner。
简单来说,不论你实现哪个接口,我们只需要重写接口的run方法就可以了。

使用例子

不同点

详细一点,首先说说CommandLineRunner和ApplicationRunner他们唯一的不同点就是参数。


可以看到,CommandLineRunner的run方法的参数是String数组,而ApplicationRunner中run方法的参数是ApplicationArguments。

具体启动时刻

之前我们说了,在项目启动后去执行指定代码,那么具体是在什么时候执行run方法呢?
他们都是在spring容器启动完成后立即执行,并非在springboot完全启动完成后执行。

控制执行顺序

如果我们有多个类都实现了该方法,而我们又要求按照一定的顺序执行怎么办呢?
我们可以在类上增加@Order注解,数字越小,优先级越高。


如图中,就会先执行Load2,后执行Load1。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据