23.7 访问程序参数

如果需要访问传递给SpringApplication.run(…)方法的程序参数,您可以注入一个org.springframework.boot.ApplicationArgumentsbean。ApplicationArguments接口提供对原始String[]参数以及被解析的optionnon-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注解来注入单个程序参数。


书籍推荐