国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洞口县| 汕头市| 兴和县| 应用必备| 新竹市| 安溪县| 荆门市| 天峨县| 蓝田县| 乌兰县| 剑阁县| 大洼县| 乌鲁木齐县| 棋牌| 西峡县| 云龙县| 肥城市| 丰城市| 松阳县| 高清| 定安县| 珠海市| 赣榆县| 当雄县| 夏邑县| 霸州市| 独山县| 肥乡县| 南雄市| 三穗县| 沧源| 泽州县| 望奎县| 华蓥市| 班戈县| 朝阳市| 新安县| 永年县| 夹江县| 青州市| 从江县|