SpringBoot的jar传递参数时,使用两个「--」横线来标记参数

新版博客编辑界面超级难受,考虑转战博客园!!!

SpringBoot的jar传递参数时,使用两个「--」横线来标记参数

■前言

指定tomcat的端口,--server.port

指定配置文件,--spring.config.location

指定profile,--spring.profiles.active=test

java -jar mySpringBoot.jar --spring.config.location=C:/application.properties --server.port=8081

■SpringBoot源代码分析

----

SimpleCommandLineArgsParser

/**
 * @author Chris Beams
 * @author Sam Brannen
 * @since 3.1
 */
class SimpleCommandLineArgsParser {

	/**
	 * Parse the given {@code String} array based on the rules described {@linkplain
	 * SimpleCommandLineArgsParser above}, returning a fully-populated
	 * {@link CommandLineArgs} object.
	 * @param args command line arguments, typically from a {@code main()} method
	 */
	public CommandLineArgs parse(String... args) {
		CommandLineArgs commandLineArgs = new CommandLineArgs();
		for (String arg : args) {
			if (arg.startsWith("--")) {
				String optionText = arg.substring(2);
				String optionName;
				String optionValue = null;
				int indexOfEqualsSign = optionText.indexOf('=');
				if (indexOfEqualsSign > -1) {
					optionName = optionText.substring(0, indexOfEqualsSign);
					optionValue = optionText.substring(indexOfEqualsSign + 1);
				}
				else {
					optionName = optionText;
				}
				if (optionName.isEmpty()) {
					throw new IllegalArgumentException("Invalid argument syntax: " + arg);
				}
				commandLineArgs.addOptionArg(optionName, optionValue);
			}
			else {
				commandLineArgs.addNonOptionArg(arg);
			}
		}
		return commandLineArgs;
	}

}

上一篇:SpringCloud SpringBoot uniapp vue b2b2c 微服务 多商家入驻直播商城之Redis 脚本


下一篇:define 宏的单行定义