使用java.util.prefs.Preferences代替java.util.Properties
記住安裝路徑可以通過設(shè)置環(huán)境變量(例如,MYAPP_HOME)來解決。 變量可以在安裝時用所需的值初始化,以便每次加載應(yīng)用程序時都將設(shè)置該變量。 這是大多數(shù)項目中采用的典型解決方案。
其他解決方案
JDK提供的Preferences API可用于解決此典型問題。 首選項就像屬性一樣工作,但與屬性不同,它們是持久的。 在背面,當(dāng)寫入首選項時,它將被存儲到后備存儲中。 當(dāng)您要求首選項時,將從該存儲中加載該值。 在典型的Windows計算機(jī)上,默認(rèn)存儲為Windows注冊表,但該存儲是可配置的,您可以將其更改為所需的文件,例如文件。
寫首選項很簡單。 與基于字符串的鍵/值對的屬性不同,首選項具有字符串的鍵,但是您可以存儲所有基本類型的值,例如long , boolean , double等。
public class StaticPreferenceFactory {public static void main(String args[]) throws Exception {Preferences prefsRoot = Preferences.userRoot();Preferences myPrefs = prefsRoot.node("com.myapp.preference.staticPreferenceLoader");myPrefs.put("fruit", "apple");myPrefs.putDouble("price", 40);myPrefs.putBoolean("available", false);return prefsRoot;} }就像我們有系統(tǒng)變量和用戶變量一樣。 您可以通過調(diào)用systemRoot()獲得一個系統(tǒng)首選項節(jié)點(diǎn),并且您可以通過調(diào)用userRoot()節(jié)點(diǎn)獲得一個用戶首選項節(jié)點(diǎn)。 一旦首選項存儲在userNode中,系統(tǒng)的其他用戶就無法訪問它,就像用戶變量一樣。 您可以清除通過調(diào)用clear() API編寫的首選項。
public class UsePreference {public static void main(String args[]) throws Exception {Preferences myfilePrefs = Preferences.userRoot();myfilePrefs = myfilePrefs.node("com.myapp.preference.staticPreferenceLoader");System.out.println("finding fruit:"+ myfilePrefs.get("fruit", "not found") + " available :"+ myfilePrefs.getBoolean("available", true));} }就像屬性一樣,檢索首選項也很簡單。 如果找不到該值,此處的get API會使用兩個參數(shù):要找到的鍵和默認(rèn)值。
Spring還提供了PreferencesPlaceholderConfigurer ,可用于加載首選項。
<bean id="preferencePlaceHolder"class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"><property name="userTreePath" value="com.myapp.preference.staticPreferenceLoader" /> </bean> <bean id="myEntity" class="info.dependencyInjection.spring.factory.MyEntity"><property name="value" value="${fruit}" /> </bean>對于我們的安裝程序問題,我們可以在安裝時將所有配置選項存儲在“首選項”中,應(yīng)用程序?qū)⒅魂P(guān)心讀取這些值。 這樣,我們可以避免編寫環(huán)境變量的所有麻煩,并確保每次都加載正確的變量。
參考:在我們的JCG合作伙伴 Rahul Sharma的“到目前為止之路”博客 中 , 使用java.util.prefs.Preferences代替java.util.Properties 。
相關(guān)文章 :- 做短,但做對!
- 在Java 7中處理文件
- Java泛型快速教程
- Google Guava庫必需品
- Java最佳實(shí)踐–多線程環(huán)境中的DateFormat
翻譯自: https://www.javacodegeeks.com/2011/09/use-javautilprefspreferences-instead-of.html
總結(jié)
以上是生活随笔為你收集整理的使用java.util.prefs.Preferences代替java.util.Properties的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 咪咕视频安卓版下载(咪咕视频安卓版)
- 下一篇: 从GlassFish 3.x扩展到Web