Java 属性文件与环境变量

Java 属性文件与环境变量,java,Java,嘿,我想知道在java中.properties文件和环境变量之间有什么区别。 .Properties文件 环境变量 以这种方式传递参数在运行时不可重写: java -jar -arg1=text1 -arg2=text2 myJAR.jar 当应用程序启动时,这些值被传递。 必须重新启动应用程序才能更改值。 此外,传递大量参数可能容易出错 以这种方式对属性进行赋值可能会在运行时被覆盖: .Properties file arg1=text1 arg2=text2 因为这些值位于外部文件中

嘿,我想知道在java中.properties文件和环境变量之间有什么区别。 .Properties文件

环境变量


以这种方式传递参数在运行时不可重写:

java -jar -arg1=text1 -arg2=text2 myJAR.jar
当应用程序启动时,这些值被传递。 必须重新启动应用程序才能更改值。 此外,传递大量参数可能容易出错

以这种方式对属性进行赋值可能会在运行时被覆盖:

.Properties file 
arg1=text1 
arg2=text2
因为这些值位于外部文件中,可以在应用程序运行时修改该文件。当然,必须在应用程序中实现一种在运行时考虑文件修改的方法。 例如,使用Joran实现的Logback提供了一种方法 要在运行时更改Logback配置文件,请执行以下操作:

环境变量是调用程序时传递给程序的键值对,而属性文件由属性列表及其值组成。通常,属性文件被认为是维护配置值的最佳实践,原因如下:

属性文件比环境变量更具可读性。此外,它们与启动脚本无关,我们可以在运行程序时传递任何文件。 Spring等框架提供了从属性文件创建集合或映射的不同方法。 对于不同的环境(如stage、prod等),使用不同的属性文件很容易
看起来您已经知道这两者之间的区别了。要在命令行分配,您需要使用-D。如果您有很多属性,那么它将是低效的。
java -jar -arg1=text1 -arg2=text2 myJAR.jar
.Properties file 
arg1=text1 
arg2=text2