国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

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

2024-07-14 08:42:59
字體:
來源:轉載
供稿:網友

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

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

完整的工作源代碼在這里

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

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

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

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

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

@SpringBootApplicationpublic 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

上述執行的輸出:

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

總結

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福海县| 民县| 萨迦县| 石首市| 衢州市| 东海县| 望奎县| 巴林右旗| 大渡口区| 金门县| 托里县| 平定县| 南雄市| 赤城县| 济南市| 比如县| 汉阴县| 逊克县| 广饶县| 绥中县| 丹阳市| 辉南县| 府谷县| 治多县| 金堂县| 綦江县| 漠河县| 桃园市| 宜春市| 龙井市| 黄龙县| 诏安县| 华容县| 迁西县| 垦利县| 青阳县| 洮南市| 旅游| 敦煌市| 新平| 吴忠市|