SpringBoot中實現(xiàn)啟動任務的實現(xiàn)步驟
我們在項目中會用到項目啟動任務,即項目在啟動的時候需要做的一些事,例如:數(shù)據(jù)初始化、獲取第三方數(shù)據(jù)等等,那么如何在SpringBoot 中實現(xiàn)啟動任務,一起來看看吧
SpringBoot 中提供了兩種項目啟動方案,CommandLineRunner 和 ApplicationRunner
一、CommandLineRunner
使用 CommandLineRunner ,需要自定義一個類區(qū)實現(xiàn) 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) 標明該啟動任務的優(yōu)先級,值越大,表示優(yōu)先級越小實現(xiàn) CommandLineRunner 接口,并重寫 run() 方法,當項目啟動時,run() 方法會被執(zhí)行,run() 方法中的參數(shù)有兩種傳遞方式
1、在 IDEA 中傳入?yún)?shù)
2、將項目打包,在啟動項目時,輸入以下命令:
java -jar demo-0.0.1-SNAPSHOT.jar hello world
二、ApplicationRunner
ApplicationRunner 與 CommandLineRunner 的用法基本一致,只是接收的參數(shù)不一樣,可以接收 key-value 形式的參數(shù),如下:
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 方法的參數(shù) ApplicationArguments:
1、args.getNonOptionArgs();可以用來獲取命令行中的無key參數(shù)(和CommandLineRunner一樣)2、args.getOptionNames();可以用來獲取所有key/value形式的參數(shù)的key3、args.getOptionValues(key));可以根據(jù)key獲取key/value 形式的參數(shù)的value4、args.getSourceArgs(); 則表示獲取命令行中的所有參數(shù)
傳參方式:
1、在 IDEA 中傳入?yún)?shù)
2、將項目打包,在啟動項目時,輸入以下命令:
java -jar demo-0.0.1-SNAPSHOT.jar hello world --name=xiaoming
以上就是在 SpringBoot 中實現(xiàn)項目啟動任務的兩種方式,用法基本一致,主要體現(xiàn)在傳參的不同上
到此這篇關于SpringBoot中實現(xiàn)啟動任務的實現(xiàn)步驟的文章就介紹到這了,更多相關SpringBoot 啟動任務內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!
相關文章:
1. python b站視頻下載的五種版本2. 如何通過vscode運行調(diào)試javascript代碼3. 《CSS3實戰(zhàn)》筆記--漸變設計(一)4. JavaScript設計模式之策略模式實現(xiàn)原理詳解5. python如何寫個俄羅斯方塊6. JAVA抽象類及接口使用方法解析7. python基于tkinter制作無損音樂下載工具(附源碼)8. XML基本概念XPath、XSLT與XQuery函數(shù)介紹9. Ajax?請求隊列解決方案并結(jié)合elementUi做全局加載狀態(tài)10. vue之elementUi的el-select同時獲取value和label的三種方式