1,介绍
CommandLineRunner、ApplicationRunner 接口是在容器启动成功后的最后一步回调(类似开机自启动)。
一个项目可以有多个,优先级用@Order注解指定或者实现Ordered接口。
ApplicationRunner是对CommandLineRunner原始参数的进一步封装。
2,执行测试以及作用展示
可以获取启动参数中的指令
2.1 ApplicationRunner
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.Arrays;
/**
* 实现ApplicationRunner
*
* @Author: Mr_li
* @CreateDate: 2019-04-21 13:37
* @Version: 1.0
*/
@Component
public class TestApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
System.out.println("===MyApplicationRunner===" + Arrays.asList(args.getSourceArgs()));
System.out.println("===getOptionNames========" + args.getOptionNames());
System.out.println("===name=======" + args.getOptionValues("name"));
System.out.println("==age========" + args.getOptionValues("age"));
}
}
2.2 CommandLineRunner
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.Arrays;
/**
* 测试CommandLineRunner
*
* @Author: Mr_li
* @CreateDate: 2019-04-21 13:24
* @Version: 1.0
*/
@Order(1)
@Component
public class TestCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... args) {
System.out.println("===CommandLineRunner===" + Arrays.asList(args));
}
}
2.3 启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.Arrays;
/**
* @author Mr_Li
*/
@SpringBootApplication
public class JwtApplication {
public static void main(String[] args) {
System.out.println("启动类" + Arrays.asList(args));
SpringApplication.run(JwtApplication.class, args);
}
}
2.4 设置启动参数
2.5 执行获取结果
3 总结
这两个启动接口中,我们可以实现根据启动的参数指令,初始化一些东西,比如redis的初始化等等。