2017-06-06 137 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文件(例如階段,督促等)