springboot项目启动成功后执行一段代码的两种方式
方法一:实现ApplicationRunner接口
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @author jql
* @ClassName: UserLoginService
* @Description: 实现ApplicationRunner接口
* @date 2019/12/3 18:55
*/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("通过实现ApplicationRunner接口");
String[] sourceArgs = args.getSourceArgs();
for (String arg : sourceArgs) {
System.out.print(arg + " ");
}
}
}
方法二:实现CommandLineRunner接口
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class CommandLineRunnerImpl implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("通过实现CommandLineRunner接口");
for (String arg : args) {
System.out.print(arg + " ");
}
}
}
两种实现方式的不同之处在于run方法中接收的参数类型不一样
注:当项目中同时实现了ApplicationRunner和CommondLineRunner接口时,可使用Order注解或实现Ordered接口来指定执行顺序,值越小越先执行
参考资料 https://www.cnblogs.com/zuidongfeng/p/9926471.html