2017-06-06 135 views
-1

嘿,我想知道.properties文件到environment variablejava之间有什么区别。

的.properties这样的文件属性文件与环境变量

arg1=text1 

arg2=text2 

环境变量

java -jar -arg1=text1 -arg2=text2 myJAR.jar 
+0

看起来你已经知道两者的区别。 – CollinD

+0

要在命令行分配,您需要使用-D。如果你有很多属性,那么效率会很低。 –

回答

0

传递参数是不可重写在运行时:

java -jar -arg1=text1 -arg2=text2 myJAR.jar 

的值是PAS sed在应用程序启动时。

您必须重新启动应用程序才能更改这些值。
此外,传递大量参数可能会出错。以这种方式

价值评估性质可以在运行时被重写:

.Properties file 
arg1=text1 
arg2=text2 

作为值位于可在应用程序的运行时期间被修改的外部文件。当然,在运行时期间考虑文件修改的方法必须在应用程序中实现。
例如,的logback(与Joran实现)提供了一种方法 改变的logback配置文件在运行时: https://logback.qos.ch/manual/configuration.html#joranDirectly

0

环境变量是key-value双传递给程序,而它的调用而properties文件包含的属性列表以及他们的价值观。通常,属性文件被认为是维护配置值的最佳实践,这是为什么:

  • 属性文件比环境变量更具可读性。另外,它们并不依赖于启动脚本,我们可以在运行程序时传递任何文件。
  • Spring这样的框架提供了不同的方法来从属性文件创建collectionmap
  • 可以很容易地使用不同的环境不同的properties文件(例如阶段,督促等)