亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何使用Spring Boot ApplicationRunner解析命令行中的參數

 更新時間:2018年12月03日 11:18:37   作者:banq  
這篇文章主要介紹了使用Spring Boot ApplicationRunner解析命令行中的參數,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

使用Spring提供的CommandLineRunner接口可以實現了一個命令行應用程序。但是,參數/選項/參數處理卻不是那么好。幸運的是,有一種更好的方法可以使用Spring Boot編寫命令行應用程序,并且還可以使用ApplicationRunner接口進行解析。

在我們開始快速說明之前。在這兩種情況下,無論是CommandLineRunner還是ApplicationRunner,都始終支持Spring的屬性處理。我們可以像往常一樣使用@Value注釋注入值。

完整的工作源代碼在這里

首先,我們創(chuàng)建一個簡單的Spring Boot應用程序并實現ApplicationRunner接口?,F在,Spring可以獲得我們的這個類并執(zhí)行它。它類似于CommandLineRunner。

我們還必須實現一個方法run,但是我們將ApplicationArguments 作為入參數而不是String列表。

ApplicationArguments區(qū)分選項參數和非選項參數。選項參數是我們可以通過Spring Boot屬性處理使用的(如 app.name = Myapp)。它們還可以通過傳入逗號分隔列表或多次使用參數來為每個選項包含多個值。

非選項參數是我們在命令行傳遞除了VM參數的所有其他參數。

在示例中,我們將打印出我們收到的每種類型的參數,然后顯示它們。

@SpringBootApplication
public class CommandlineAppApplication implements ApplicationRunner{
  public static void main(String[] args) {
    SpringApplication.run(CommandlineAppApplication.class, args);
  }
  @Override
  public void run(ApplicationArguments args) throws Exception {
    System.out.println("# NonOptionArgs: " + args.getNonOptionArgs().size());
    System.out.println("NonOptionArgs:");
    args.getNonOptionArgs().forEach(System.out::println);
    System.out.println("# OptionArgs: " + args.getOptionNames().size());
    System.out.println("OptionArgs:");
    args.getOptionNames().forEach(optionName -> {
      System.out.println(optionName + "=" + args.getOptionValues(optionName));
    });
  }
}

非選項參數通過getNonOptionArgs()作為字符串列表重新獲得。

而對于選項參數,我們可以通過接收選項名稱getOptionNames和實際值通過getOptionValues,它會返回一個列表字符串。

當我們現在啟動應用程序并傳遞一些參數,如:

java -jar commandline-app-0.0.1-SNAPSHOT.jar iamnonoption --app.name=CmdRulez --app.hosts=abc,def,ghi --app.name=2

上述執(zhí)行的輸出:

#NonOptionArgs:1個
NonOptionArgs:
nonoption
#OptionArgs:2個
OptionArgs:
app.hosts = [ABC,DEF,GHI]
app.name = [CmdRulez,2]

總結

以上所述是小編給大家介紹的使用Spring Boot ApplicationRunner解析命令行中的參數,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • java使用ZipInputStream實現讀取和寫入zip文件

    java使用ZipInputStream實現讀取和寫入zip文件

    zip文檔可以以壓縮格式存儲一個或多個文件,本文主要為大家詳細介紹了java如何使用ZipInputStream讀取Zip文檔與寫入,需要的小伙伴可以參考下
    2023-11-11
  • Java Spring-Cache key配置注意事項介紹

    Java Spring-Cache key配置注意事項介紹

    本文主要對java spring-cache key配置注意事項進行了介紹,小編覺得還是挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • 深入理解Java 線程通信

    深入理解Java 線程通信

    這篇文章主要介紹了Java 線程通信的的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • dubbo泛化調用使用及原理示例解析

    dubbo泛化調用使用及原理示例解析

    這篇文章主要為大家介紹了dubbo泛化調用使用及原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • java中“==“和equals()的區(qū)別詳解

    java中“==“和equals()的區(qū)別詳解

    這篇文章主要給大家介紹了關于java中“==“和equals()區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 實例解析Json反序列化之ObjectMapper(自定義實現反序列化方法)

    實例解析Json反序列化之ObjectMapper(自定義實現反序列化方法)

    這篇文章主要介紹了實例解析Json反序列化之ObjectMapper,json自定義序列化的方法,需要的朋友可以了解下。
    2017-09-09
  • springboot使用Logback把日志輸出到控制臺或輸出到文件

    springboot使用Logback把日志輸出到控制臺或輸出到文件

    這篇文章給大家介紹springboot項目使用日志工具Logback把日志不僅輸出到控制臺,也可以輸出到文件的操作方法,本文通過實例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-10-10
  • 解決Java Calendar類set()方法的陷阱

    解決Java Calendar類set()方法的陷阱

    這篇文章主要介紹了解決Java Calendar類set()方法的陷阱,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 基于java文本復制的7種方式總結

    基于java文本復制的7種方式總結

    下面小編就為大家分享一篇基于java文本復制的7種方式總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Spring Boot 單元測試和集成測試實現詳解

    Spring Boot 單元測試和集成測試實現詳解

    這篇文章主要介紹了Spring Boot 單元測試和集成測試實現詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09

最新評論