在具体使用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方法的参数分为选项参数和非选项参数。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注