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