Spring Boot通过ApplicationArguments获取args参数

perfect start 4月前 ⋅ 483 阅读
  1. spring boot 项目打包好后通过启动命令改变端口

    java -jar project.jar --server.port=8082
    
  2. 在具体使用Spring Boot的过程中,如果需要获得SpringApplication.run(args)方法传递的参数,那么可通过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));
            });
        }
    
    }
    
  3. 测试代码(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方法的参数分为选项参数和非选项参数。
    

全部评论: 0

    我有话说: