如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口ApplicationRunner或者
CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法。
ApplicationRunner:启动获取应用启动的时候参数
CommandLineRunner:启动获取命令行参数
目录
Spring Boot Runner启动器
如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner
或者 CommandLineRunner
,这两个接口实现方式一样,它们都只提供了一个run方法。
ApplicationRunner
启动获取应用启动的时候参数。
@FunctionalInterface
public interface ApplicationRunner {
/**
* Callback used to run the bean.
* @param args incoming application arguments
* @throws Exception on error
*/
void run(ApplicationArguments args) throws Exception;
}
CommandLineRunner
启动获取命令行参数。
@FunctionalInterface
public interface CommandLineRunner {
/**
* Callback used to run the bean.
* @param args incoming main method arguments
* @throws Exception on error
*/
void run(String... args) throws Exception;
}
使用方式
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class MyBean implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
// Do something...
}
}
或者这样
@Bean
public CommandLineRunner init() {
return (String... strings) -> {
};
}
启动顺序
如果启动的时候有多个ApplicationRunner和CommandLineRunner,想控制它们的启动顺序,可以实现 org.springframework.core.Ordered接口或者使用 org.springframework.core.annotation.Order注解。