如果需要访问传递给SpringApplication.run(…)的应用程序参数,可以注入org.springframework.boot.ApplicationArguments。 ApplicationArguments接口提供对原始String[]参数以及解析选项和非选项参数的访问,如以下示例所示:
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注解注入单个应用程序参数。