CommandLineRunner接口可以實現任務的自動加載,當項目啟動完後,就會自動去執行CommandLineRunner接口裡的run方法,你可以實現多個CommandLineRunner的實例,使用order來控制執行的順序!
/** * 項目啟動後自動運行的代碼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裡的數據"); } }
程序在啟動之後,可以看到控制檯的日誌,它們被執行了。
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裡的數據
[retouched ] springboot CommandLineRunner接口實現自動任務加載功能已經有244次圍觀