23.7 Accessing Application Arguments

如果你需要访问传递给SpringApplication.run(…)方法的应用程序参数,你可以注入org.springframework.boot.ApplicationArguments实例. ApplicationArguments接口提供了访问原始的String[]参数解析和解析optionnon-option参数,如以下示例所示:

  1. import org.springframework.boot.*;
  2. import org.springframework.beans.factory.annotation.*;
  3. import org.springframework.stereotype.*;
  4. @Component
  5. public class MyBean {
  6. @Autowired
  7. public MyBean(ApplicationArguments args) {
  8. boolean debug = args.containsOption("debug");
  9. List<String> files = args.getNonOptionArgs();
  10. // if run with "--debug logfile.txt" debug=true, files=["logfile.txt"]
  11. }
  12. }

Tip

Spring Boot还向Spring环境注册CommandLinePropertySource.这也能让你使用@value注解注入单个应用程序参数.