【Spring boot 系统启动任务 CommandLineRunner】

Spring boot 系统启动任务 CommandLineRunner
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。
为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。
很简单,只需要一个类就可以,无需其他配置。
创建任务类 1 实现 CommandLineRunner 接口:
com.hpit.sb.runner. MyCommandRunner1
import org.apache.log4j.Logger;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* TODO 为了实现服务器启动即执行某些操作,只需要实现spring boot中的CommandLineRunner接口即可
*
*/
@Component
@Order (value = 1) // 设置启动执行顺序
public class MyCommandRunner1 implements CommandLineRunner {
private Logger logger = Logger. getLogger ( this .getClass());
/**
* TODO 系统启动即会执行Run方法
*/
@Override
public void run(String... arg0 ) throws Exception {
logger .info( "执行启动任务1..." );
}
}
com.hpit.sb.runner. MyCommandRunner2
import org.apache.log4j.Logger;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* TODO 为了实现服务器启动即执行某些操作,只需要实现spring boot中的CommandLineRunner接口即可
*
*
*/
@Component
@Order (value = 2) // 设置启动执行顺序
public class MyCommandRunner2 implements CommandLineRunner {
private Logger logger = Logger. getLogger ( this .getClass());
/**
* TODO 系统启动即会执行Run方法
*/
@Override
public void run(String... arg0 ) throws Exception {
logger .info( "执行启动任务2..." );
}
}
Spring Boot 应用程序在启动后,会遍历 CommandLineRunner 接口的实例并运行它们的 run 方法。也可以利用
@Order 注解(或者实现 Order 接口)来规定所有 CommandLineRunner 实例的运行顺序。
如下我们使用@Order 注解来定义执行顺序。
这里的 args 就是程序启动的时候进行设置的 :
SpringApplication.run(App.class, new String[]{"hello,"," zjs "});
这里为了做演示,配置为固定值了,其实直接接收 main 中的 args 即可,那么在运行的时候,进行配置即
可。
启动应用日志输出:
【Spring boot 系统启动任务 CommandLineRunner】_第1张图片

 

你可能感兴趣的:(springboot,java,spring,boot,开发语言)