在spring-boot中如何使用ApplicationArguments参数

在学习spring-boot, 文档为Spring Boot Document, 在23.6节 Accessing application arguments中, 有如下的代码:

package com.example.project;

import org.springframework.boot.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;

import java.util.*;

@Component
public class MyBean {
  @Autowired
  public MyBean(ApplicationArguments args) {
    boolean debug = args.containsOption("debug");
    List<String> files = args.getNonOptionArgs();
    System.out.println(debug);
    System.out.println(files);
  }
}

文档上说: 运行文件时候加上 --debug logfile.txt, 则debug=true, files=["logfile.txt"].

但问题是, 如何运行此文件啊?
我的Maven目录为:
图片描述

阅读 13.2k
1 个回答

这个意思就是说当你把应用打成一个jar包运行的时候,后面跟着的命令行参数你的这个bean能拿到,比如你用mvn package打包成test.jar,那么你运行jar -jar test.jar --debug test.log,那个MyBean里面就能拿到"--debug test.log"这个命令行参数了

另外在写应用的时候要注意调用run的时候加上参数列表args:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题