如果需要访问传递给SpringApplication.run(…)
方法的程序参数,您可以注入一个org.springframework.boot.ApplicationArguments
bean。ApplicationArguments
接口提供对原始String[]
参数以及被解析的option
和non-option
参数的访问:
import org.springframework.boot.*
import org.springframework.beans.factory.annotation.*
import org.springframework.stereotype.*
@Component
public class MyBean {
@Autowired
public MyBean(ApplicationArguments args) {
boolean debug = args.containsOption("debug");
List<String> files = args.getNonOptionArgs();
// if run with "--debug logfile.txt" debug=true, files=["logfile.txt"]
}
}
Spring Boot还会在Spring的
Environment
中注册一个CommandLinePropertySource
。这使您可以使用@Value
注解来注入单个程序参数。