應用程式啟動後首先被呼叫CommandLineRunner
阿新 • • 發佈:2020-10-09
public void run(String... args),最重要的是:這個方法會在應用程式啟動後首先被呼叫。
那種只需要在應用程式啟動時執行一次的任務,非常適合利用Command line runners來完成。
Spring Boot應用程式在啟動後,會遍歷CommandLineRunner介面的例項並執行它們的run方法。
也可以利用@Order註解(或者實現Order介面)來規定所有CommandLineRunner例項的執行順序。
例子:
1 @EnableAsync 2 @EnableSwagger2Doc 3 @SpringBootApplication 4 publicclass App implements CommandLineRunner,Common{ 5 @Autowired 6 private ApplicationContext appContext; 7 8 public static void main(String[] args) throws Exception { 9 Logger.info("Server Loading Start:"); 10 /** 11 * mybatis初始化 12 */ 13 DbCache.instance();14 15 DataCache.init(); 16 17 /** 18 * *開啟service服務 19 */ 20 SpringApplication.run(App.class, args); 21 22 Logger.info("Server Loading end:"); 23 24 } 25 26 @Override 27 public void run(String... args) throws Exception { 28 String[] beans = appContext.getBeanDefinitionNames(); 29 for (String bean : beans) { 30 HttpInterface.loadInterface(appContext.getBean(bean).getClass()); 31 } 32 }33 }