使用java.util.prefs.Preferences代替java.util.Properties
記住安裝路徑可以通過(guò)設(shè)置環(huán)境變量(例如,MYAPP_HOME)來(lái)解決。 變量可以在安裝時(shí)用所需的值初始化,以便每次加載應(yīng)用程序時(shí)都將設(shè)置該變量。 這是大多數(shù)項(xiàng)目中采用的典型解決方案。
其他解決方案
JDK提供的Preferences API可用于解決此典型問(wèn)題。 首選項(xiàng)就像屬性一樣工作,但與屬性不同,它們是持久的。 在背面,當(dāng)寫(xiě)入首選項(xiàng)時(shí),它將被存儲(chǔ)到后備存儲(chǔ)中。 當(dāng)您要求首選項(xiàng)時(shí),將從該存儲(chǔ)中加載該值。 在典型的Windows計(jì)算機(jī)上,默認(rèn)存儲(chǔ)為Windows注冊(cè)表,但該存儲(chǔ)是可配置的,您可以將其更改為所需的文件,例如文件。
寫(xiě)首選項(xiàng)很簡(jiǎn)單。 與基于字符串的鍵/值對(duì)的屬性不同,首選項(xiàng)具有字符串的鍵,但是您可以存儲(chǔ)所有基本類(lèi)型的值,例如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)變量和用戶變量一樣。 您可以通過(guò)調(diào)用systemRoot()獲得一個(gè)系統(tǒng)首選項(xiàng)節(jié)點(diǎn),并且您可以通過(guò)調(diào)用userRoot()節(jié)點(diǎn)獲得一個(gè)用戶首選項(xiàng)節(jié)點(diǎn)。 一旦首選項(xiàng)存儲(chǔ)在userNode中,系統(tǒng)的其他用戶就無(wú)法訪問(wèn)它,就像用戶變量一樣。 您可以清除通過(guò)調(diào)用clear() API編寫(xiě)的首選項(xiàng)。
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));} }就像屬性一樣,檢索首選項(xiàng)也很簡(jiǎn)單。 如果找不到該值,此處的get API會(huì)使用兩個(gè)參數(shù):要找到的鍵和默認(rèn)值。
Spring還提供了PreferencesPlaceholderConfigurer ,可用于加載首選項(xiàng)。
<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>對(duì)于我們的安裝程序問(wèn)題,我們可以在安裝時(shí)將所有配置選項(xiàng)存儲(chǔ)在“首選項(xiàng)”中,應(yīng)用程序?qū)⒅魂P(guān)心讀取這些值。 這樣,我們可以避免編寫(xiě)環(huán)境變量的所有麻煩,并確保每次都加載正確的變量。
參考:在我們的JCG合作伙伴 Rahul Sharma的“到目前為止之路”博客 中 , 使用java.util.prefs.Preferences代替java.util.Properties 。
相關(guān)文章 :- 做短,但做對(duì)!
- 在Java 7中處理文件
- Java泛型快速教程
- Google Guava庫(kù)必需品
- Java最佳實(shí)踐–多線程環(huán)境中的DateFormat
翻譯自: https://www.javacodegeeks.com/2011/09/use-javautilprefspreferences-instead-of.html
總結(jié)
以上是生活随笔為你收集整理的使用java.util.prefs.Preferences代替java.util.Properties的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 咪咕视频安卓版下载(咪咕视频安卓版)
- 下一篇: 从GlassFish 3.x扩展到Web