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!

推薦閱讀: