简单总结一下 SpringBoot 启动时执行特定代码的方式
一、CommandLineRunner
CommandLineRunner
是一个函数式接口,它可以被用来在 Spring Boot 应用程序启动后执行一些特定的逻辑。当 Spring Boot 应用程序启动完成后,CommandLineRunner
接口的实现类中的 run
方法会被调用。
@Component
public class MyCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
// 在应用程序启动后执行的逻辑
System.out.println("CommandLineRunner... ...");
}
}
二、ApplicationRunner
与 CommandLineRunner
类似,ApplicationRunner
接口也允许开发者定义在应用程序启动后需要立即执行的任务。
与 CommandLineRunner
不同的是,ApplicationRunner
接口的 run
方法接受一个 ApplicationArguments
对象作为参数,该对象提供了对应用程序启动参数的访问。
@Component
public class MyApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
// 在应用程序启动后执行的逻辑
System.out.println("MyApplicationRunner... ...");
// 访问应用程序启动参数
System.out.println("Application arguments: " + JSONObject