首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring启动外部主要问题中的命令行参数

Spring启动外部主要问题中的命令行参数
EN

Stack Overflow用户
提问于 2021-05-16 03:34:54
回答 1查看 525关注 0票数 0

在spring应用程序中,我试图在主方法之外获取命令行参数,我尝试了许多方法,但它们都没有工作。我使用的是弹簧引导2.4.5。以下是我的代码:

代码语言:javascript
复制
package com.example;

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainClass implements ApplicationRunner {
    public static void main(String[] args){
        SpringApplication.run(MainClass.class);
        for (String arg : args) System.out.println("MAIN::::"+arg);
    }

    @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));
        });
    }
}

下面是传递参数的输出:iamnonoption --app.name=CmdRulez --app.hosts=abc,def,ghi --app.name=2

代码语言:javascript
复制
# NonOptionArgs: 0
NonOptionArgs:
# OptionArgs: 0
OptionArgs:
MAIN::::iamnonoption
MAIN::::--app.name=CmdRulez
MAIN::::--app.hosts=abc,def,ghi
MAIN::::--app.name=2

为什么ApplicationArguments没有得到任何论据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-16 03:41:06

Change

SpringApplication.run(MainClass.class);

To:

SpringApplication.run(MainClass.class, args);

参考文献

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67552973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档