Spring Boot 2.x 系列--spring 在啟動後執行某些特定程式碼
阿新 • • 發佈:2018-12-21
實現ApplicationRunner
或CommandLineRunner
介面。兩個介面以相同的方式工作並提供單個run
方法
兩者的區別:
ApplicationRunner
使用了ApplicationArguments 作為引數
@Override public void run(ApplicationArguments args) throws Exception { System.out.println(">>>>>>>>>>>>>>>>>>>>>> ApplicationRunner"); }
CommandLineRunner
使用了一個簡單的字串陣列
@Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>>>>>>>>>> CommandLineRunner");
}
執行效果:
2018-11-09 17:12:31.834 INFO 25520 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2018-11-09 17:12:32.061 INFO 25520 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2018-11-09 17:12:32.066 INFO 25520 --- [ main] com.example.demo.BannerApplication : Started BannerApplication in 2.901 seconds (JVM running for 4.322) >>>>>>>>>>>>>>>>>>>>>> CommandLineRunner
拍黑板:
如果兩個都寫, 是可以的.
想指定誰先執行, 可以用 @Order(666) 來指定順序 -- 666這個數字隨便指定