springboot~CommandLineRunner接口實現自動任(ren)務(wu)加(jia)載(zai)
CommandLineRunner接口可以實現任務(wu)的(de)(de)自動(dong)加(jia)載,當(dang)項目啟動(dong)完后,就會自動(dong)去執行CommandLineRunner接口里的(de)(de)run方法,你可以實現多(duo)個CommandLineRunner的(de)(de)實例,使用(yong)order來控制(zhi)執行的(de)(de)順(shun)序!
/**
* 項目啟動后自動運行的代碼CommandLineRunner
*/
@Component
@Order(1)
public class MyStartupRunner1 implements CommandLineRunner {
private Logger logger = LoggerFactory.getLogger(MyStartupRunner1.class);
@Override
public void run(String... args) throws Exception {
logger.info("MyStartupRunner1里的數據");
}
}
@Component
@Order(2)
public class MyStartupRunner2 implements CommandLineRunner {
private Logger logger = LoggerFactory.getLogger(MyStartupRunner1.class);
@Override
public void run(String... args) throws Exception {
logger.info("MyStartupRunner2里的數據");
}
}
程序在啟動之后(hou),可(ke)以看到控制臺的日志(zhi),它們被執(zhi)行了。
2020-05-26 10:25:07.400 INFO 27788 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getUsingGET_1
2020-05-26 10:25:07.433 INFO 27788 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-05-26 10:25:07.435 INFO 27788 --- [ main] com.lind.basic.BasicApplication : Started BasicApplication in 6.967 seconds (JVM running for 8.118)
2020-05-26 10:25:07.437 INFO 27788 --- [ main] com.lind.basic.init.MyStartupRunner1 : MyStartupRunner1里的數據
2020-05-26 10:25:07.437 INFO 27788 --- [ main] com.lind.basic.init.MyStartupRunner1 : MyStartupRunner2里的數據