Spring boot CommandLineRunner啟動任務傳參實例詳解
前言
在《Spring boot 通過CommandLineRunner 在啟動完成後執行任務》這篇文章中我們介紹瞭創建CommandLineRunner任務,在Spring boot啟動後執行一些任務。
有人可能有以為,這run(String… args)方法中的args參數是什麼?
@Component @Order(value = 1) // 指定其執行順序,值越小優先級越高 public class MyRunner1 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("MyRunner1"); } }
String… args是應用啟動的時候可以傳進來的參數,有兩種方式可以傳參
一種是命令行的方式傳參,所以為什麼這個接口叫CommandLineRunner
另一種方法是通過IntelliJ IDEA配置參數
下面分別說明
命令行傳參
首先將應用打成jar包,然後運行如下命令行,我這裡傳入三個參數
java -jar MyProject.jar 野猿新一 野猿新二 野猿新三
IntelliJ IDEA傳參
如果是在開發過程中想通過IntelliJ IDEA直接運行項目,不想打成jar包,又要傳入參數,可以配置項目運行的環境
1.點擊Edit Configurations…打開項目運行配置對話框
2展開Environment,在Program arguments項中填入項目運行的參數,點擊OK按鈕確定
測試
我們將上面的實例稍微修改下,把參數args打印出來
@Component @Order(value = 1) // 指定其執行順序,值越小優先級越高 public class MyRunner1 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("MyRunner1:" + Arrays.toString(args)); } }
采用以上命令行的方式或者IntelliJ IDEA配置參數的方式運行結果一樣,如下
2020-08-21 16:36:04.453 custom-logback INFO 16244 — [ main] com.yeyuanxinyi.MyApplication : Started MyApplication in 10.724 seconds (JVM running for 13.727)
MyRunner1:[野猿新一, 野猿新二, 野猿新三]
實際使用的時候可以取到傳入的參數然後做一些操作
總結
到此這篇關於Spring boot CommandLineRunner啟動任務傳參的文章就介紹到這瞭,更多相關Springboot CommandLineRunner啟動任務傳參內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springboot使用CommandLineRunner解決項目啟動時初始化資源的操作
- SpringBoot 在項目啟動之後執行自定義方法的兩種方式小結
- SpringBoot Web開發之系統任務啟動與路徑映射和框架整合
- Springboot啟動執行特定代碼的方式匯總
- springBoot啟動時讓方法自動執行的幾種實現方式