相同:
都能实现启动执行,这两个接口中有一个run方法,我们只需要实现这个方法即可。
不同:
ApplicationRunner中的run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。
顺序:
当有多个启动执行时,可以用@Order(1)来确认执行顺序
ApplicationRunner接口的示例:
package com.jdddemo.demo.controller;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@Component
@Order(value = 1)
public class JDDRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(args);
System.out.println("这个是测试ApplicationRunner接口");
}
}
CommandLineRunner接口示例
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
@Order(value = 2)
public class TestCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("<这个是测试CommandLineRunn接口");
}
}