二者的功能一模一样,都是在Spring容器初始化完毕之后执行起run方,不同点在于,前者的run方法参数ApplicationArguments,
对参数进行了封装,后者的参数是String...args,直接传入字符
ApplicationRunner : 是一个接口,里面定义一个run(ApplicationArguments args)方法,我们需要自己写一个类去实现这个这接口,并实现接口里面的run(ApplicationArguments args)方法
作用:springBoot项目在启动之后直接执行某一段功能代码。这个时候就用到了 ApplicationRunner
@Order(value = 1) //多个实现类需要标注执行顺序
public class SpringApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("Spring Boot 完成启动之后执行");
}
}
如果有多个实现类方法需要执行,使用@Order(value=1)注解设置执行的顺序。
CommandLineRunner : 是一个接口,里面定义一个run(String... args)方法,我们需要自己写一个类去实现这个这接口,并实现接口里面的run(String... args)方法
@Order(value = 1) //多个实现类需要标注执行顺序
public class SpringCommandLineRunner implements CommandLineRunner{
@Override
public void run(String... args) throws Exception {
System.out.println("Spring Boot 完成启动之后执行");
}
}