在学习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目录为:
这个意思就是说当你把应用打成一个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);
}
}