springboot中ApplicationRunner执行顺序问题小结
作用:ApplicationRunner是Spring Boot提供的一个接口,主要用于在Spring应用完全启动后执行特定的初始化任务或逻辑,例如数据库初始化、配置文件加载、缓存预热等。
具体用法这里就不做详细介绍了。
当我们有多个ApplicationRunner,并且需要严格控制执行顺序的时候,可以使用注解:
@Order(9) // 数值越小执行顺序越靠前
示例,我们写3个ApplicationRunner,加上@Order()注解,然后启动项目观察执行顺:
第一个:
@Slf4j
@Order(1) // 数值越小执行顺序越靠前
@Component
public class ARunner implements ApplicationRunner {
/**
* 项目启动成功后执行
* @param args
*/
@Override
public void run(ApplicationArguments args) {
log.info("项目启动成功,执行任务A");
try {
}catch (Exception e){
log.error("执行错误.", e);
}
}
}第二个:
@Slf4j
@Order(99) // 数值越小执行顺序越靠前
@Component
public class BRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
log.info("项目启动成功,执行任务B");
try {
}catch (Exception e){
log.error("执行错误.", e);
}
}
}第三个:
@Slf4j
@Order(9) // 数值越小执行顺序越靠前
@Component
public class CRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
log.info("项目启动成功,执行任务C");
try {
}catch (Exception e){
log.error("执行错误.", e);
}
}
}执行结果:可以看到,执行顺序就是按照@Order()注解来执行的,数值越小执行顺序越靠前。

到此这篇关于springboot中ApplicationRunner执行顺序问题小结的文章就介绍到这了,更多相关springboot ApplicationRunner执行顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java常用类库StringBuffer,Runtime,日期操作类等类库总结
这篇文章主要介绍了Java常用类库StringBuffer,Runtime,日期操作类等类库总结,需要的朋友可以参考下2020-02-02
Springboot Retry组件@Recover失效问题解决方法
在使用springboot的retry模块时,你是否出现过@Recover注解失效的问题呢?不用担心,这篇文章就来告诉你解决@Recover失效的办法,需要的小伙伴可以参考一下2021-11-11


最新评论