SpringBoot中實現啟動任務的實現步驟
我們在項目中會用到項目啟動任務,即項目在啟動的時候需要做的一些事,例如:數據初始化、獲取第三方數據等等,那么如何在SpringBoot 中實現啟動任務,一起來看看吧
SpringBoot 中提供了兩種項目啟動方案,CommandLineRunner 和 ApplicationRunner
一、CommandLineRunner
使用 CommandLineRunner ,需要自定義一個類區實現 CommandLineRunner 接口,例如:
import org.springframework.boot.CommandLineRunner;import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;/** * 項目啟動任務類 */@Component@Order(100)public class StartTask implements CommandLineRunner { @Override public void run(String... args) throws Exception { }}
我們首先使用 @Component 將該類注冊成為 Spring 容器中的一個 Bean然后使用 @Order(100) 標明該啟動任務的優先級,值越大,表示優先級越小實現 CommandLineRunner 接口,并重寫 run() 方法,當項目啟動時,run() 方法會被執行,run() 方法中的參數有兩種傳遞方式
1、在 IDEA 中傳入參數
2、將項目打包,在啟動項目時,輸入以下命令:
java -jar demo-0.0.1-SNAPSHOT.jar hello world
二、ApplicationRunner
ApplicationRunner 與 CommandLineRunner 的用法基本一致,只是接收的參數不一樣,可以接收 key-value 形式的參數,如下:
import org.springframework.boot.ApplicationArguments;import org.springframework.boot.ApplicationRunner;import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;/** * 項目啟動任務類 */@Component@Order(100)public class StartTask implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { }}
關于 run 方法的參數 ApplicationArguments:
1、args.getNonOptionArgs();可以用來獲取命令行中的無key參數(和CommandLineRunner一樣)2、args.getOptionNames();可以用來獲取所有key/value形式的參數的key3、args.getOptionValues(key));可以根據key獲取key/value 形式的參數的value4、args.getSourceArgs(); 則表示獲取命令行中的所有參數
傳參方式:
1、在 IDEA 中傳入參數
2、將項目打包,在啟動項目時,輸入以下命令:
java -jar demo-0.0.1-SNAPSHOT.jar hello world --name=xiaoming
以上就是在 SpringBoot 中實現項目啟動任務的兩種方式,用法基本一致,主要體現在傳參的不同上
到此這篇關于SpringBoot中實現啟動任務的實現步驟的文章就介紹到這了,更多相關SpringBoot 啟動任務內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
