在具体使用Spring Boot的过程中,如果需要获得SpringApplication.run(args)方法传递的参数,那么可通过ApplicationArguments接口来获得。

使用方法非常简单,只用在需要获得参数的类中直接注入ApplicationArguments即可,如下代码:

@Component
public class ArgsBean {

    @Resource
    private ApplicationArguments arguments;

    public void printArgs() {
        System.out.println("# 非选项参数数量: " + arguments.getNonOptionArgs().size());
        System.out.println("# 选项参数数量: " + arguments.getOptionNames().size());
        System.out.println("# 非选项参具参数:");
        arguments.getNonOptionArgs().forEach(System.out::println);

        System.out.println("# 选项参数具体参数:");
        arguments.getOptionNames().forEach(optionName -> {
            System.out.println("--" + optionName + "=" + arguments.getOptionValues(optionName));
        });
    }

}

测试代码(Spring Boot入口类方法中调用):

public static void main(String[] args) {
        SpringApplication app = new SpringApplication(SpringLearnApplication.class);
        ConfigurableApplicationContext context = app.run(args);
        ArgsBean bean = context.getBean(ArgsBean.class);
        bean.printArgs();
    }

执行程序,即可打印出对应的参数信息。其中run方法的参数分为选项参数和非选项参数。



Spring Boot通过ApplicationArguments获取args参数插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://choupangxia.com/2019/08/13/spring-boot%e9%80%9a%e8%bf%87applicationarguments%e8%8e%b7%e5%8f%96args%e5%8f%82%e6%95%b0/