日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用java.util.prefs.Preferences代替java.util.Properties

發(fā)布時(shí)間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用java.util.prefs.Preferences代替java.util.Properties 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
典型的應(yīng)用程序安裝程序需要向用戶詢問(wèn)幾個(gè)選項(xiàng),其中一些是配置問(wèn)題,例如,應(yīng)用程序應(yīng)在其上運(yùn)行的端口,應(yīng)如何運(yùn)行等。應(yīng)用程序必須記住這些選項(xiàng),并在每個(gè)選項(xiàng)中使用它們。跑。 解決此問(wèn)題的標(biāo)準(zhǔn)方法是將這些選項(xiàng)寫(xiě)入屬性文件,該文件可以在應(yīng)用程序啟動(dòng)時(shí)加載。 但是隨后問(wèn)題又轉(zhuǎn)移到其他地方,即記住安裝路徑,然后從安裝路徑加載所需的屬性文件。

記住安裝路徑可以通過(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。