如何再SpringBoot启动后运行特定方法

该博客介绍了如何在SpringBoot应用启动后自动执行特定的方法。通过实现`ApplicationRunner`或`CommandLineRunner`接口,可以在SpringBoot启动时调用自定义的run方法。这两个接口的区别在于参数,`ApplicationRunner`接收`ApplicationArguments`对象,而`CommandLineRunner`接收字符串数组。在`SpringApplication`的源代码中,这两个接口的实现会被遍历并按顺序调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何再SpringBoot启动后运行特定方法

启动类中继承

public class Application implements ApplicationRunner {
    @Override
	public void run(ApplicationArguments args) throws Exception {}
}

public class Application implements CommandLineRunner {
	@Override
	public void run(String... args) throws Exception {}
}
// 不同点在于入参

源代码

private void callRunners(ApplicationContext context, ApplicationArguments args) {
  List<Object> runners = new ArrayList();
  runners.addAll(context.getBeansOfType(ApplicationRunner.class).values());
  runners.addAll(context.getBeansOfType(CommandLineRunner.class).values());
  AnnotationAwareOrderComparator.sort(runners);
  Iterator var4 = (new LinkedHashSet(runners)).iterator();

  while(var4.hasNext()) {
    Object runner = var4.next();
    if (runner instanceof ApplicationRunner) {
      this.callRunner((ApplicationRunner)runner, args);
    }

    if (runner instanceof CommandLineRunner) {
      this.callRunner((CommandLineRunner)runner, args);
    }
  }
}
参考路径

/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/SpringApplication.class:490

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值