SpringBoot专题

07、SpringBoot中的ApplicationArgume

2019-06-16  本文已影响16人  Albert_Yu

如果在你的应用程序中需要访问传递给SpringApplication.run()的应用程序参数,,那么你可以注入org.springframework.boot.ApplicationArguments bean。ApplicationArguments接口提供了对原始String[]参数以及option和non option参数的访问,如下程序demo:

@RestController
@Slf4j
public class MyController {
    @Autowired
    private ApplicationArguments applicationArguments;

    @GetMapping("/getApplicationArgs")
    public String getApplicationArgs() {
        // 判断从参数中解析的 option 参数是否包含指定名称的选项
        boolean debug = applicationArguments.containsOption("debug");
        log.warn("containsOption debug is:{}", debug);
        // 获取args中的所有 non option 参数
        List<String> nonOptionArgs = applicationArguments.getNonOptionArgs();
        log.warn("getNonOptionArgs :{}", nonOptionArgs);

        // 获取args中所有的 option参数的name
        Set<String> optionNames = applicationArguments.getOptionNames();
        log.warn("getOptionNames:{}", optionNames);

        // 获取传递给应用程序的原始未处理参数
        String[] sourceArgs = applicationArguments.getSourceArgs();
        log.warn("getSourceArgs:{}", JSON.toJSONString(sourceArgs));

        return "SUCCESS";
    }
}

方法摘要
containsOption(String name):判断从参数中解析的 option 参数是否包含指定名称的选项
getNonOptionArgs():获取args中的所有 non option 参数
getOptionNames():获取args中所有的 option参数的name
getSourceArgs():获取传递给应用程序的原始未处理参数
getOptionValues(String name):获取args中指定name的option参数的值

上一篇下一篇

猜你喜欢

热点阅读