概要
在开发 Java 应用程序时,有时需要通过命令行参数传递数据给应用程序。
在 IntelliJ IDEA 中,通过命令行参数传递数据给 Java 应用程序可以通过以下两种方式实现:
- 在 IntelliJ IDEA 中运行应用程序时配置命令行参数
- 将项目打包成 JAR 文件并通过命令行运行时传递参数
方式1–编辑运行配置
第一步:
第二步:
或者:
第三步:
就可以动态设置参数了
注意:如果你传递的参数少于三个,程序将抛出 ArrayIndexOutOfBoundsException 异常。为了避免这种情况,可以在访问参数之前检查参数的长度。比如:
if (args.length < 3) {
System.out.println("需要至少三个参数。");
System.exit(1);
}
方式2–运行jar包
java -jar demo-1.0-SNAPSHOT.jar var1 var2 var3
修改从application.yml中读取的属性值
动态配置
通过命令行参数传递配置属性,可以在启动应用时动态设置某些配置项
,而不需要修改配置文件。这对于测试、临时配置调整或在不同环境下运行同一个应用非常有用。例如,在开发、测试和生产环境中可能需要使用不同的配置。
Spring Boot 配置属性的优先级顺序
Spring Boot 会按照以下顺序解析配置属性,前面的优先级更高:
- 命令行参数 (
--property=value
) - Java 系统属性 (
System.getProperties()
) - 环境变量
application.properties
或application.yml
文件@PropertySource
注解的属性- 默认属性 (
SpringApplication.setDefaultProperties
)
但有时候想修改application.yml 中的属性值,可以在运行时通过命令行参数来覆盖 application.yml 中的属性值
方法1
方法2
运行jar包的时候指定
java -jar demo-1.0-SNAPSHOT.jar --hac.name=bob
❤觉得有用的可以留个关注~❤