前言
如果我们希望在项目启动成功后自动执行某些操作或者业务的话,可以有很多方法,比如:在Application主程序里面写,或者是。这两个接口分别为CommandLineRunner和ApplicationRunner。这里简单的介绍另外一种方法:ApplicationRunner。
两个接口的不同之处在于:ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。
代码
@Component
@Slf4j
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
log.info("项目启动成功,执行操作");
System.out.println("Hello World");
}
}
扩展
如果有多个代码段需要执行,可用@Order注解设置执行的顺序。
@Component
@Slf4j
@Order(value=1) //首先执行
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
log.info("项目启动成功,第一个执行操作");
System.out.println("Hello World1");
}
}
@Component
@Slf4j
@Order(value=2) //第二个执行
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
log.info("项目启动成功,第二个执行操作");
System.out.println("Hello World2");
}
}