什麼叫做一個(gè)設定檔?簡(jiǎn)單來(lái)說(shuō),一個(gè)設定檔最重要的就是有屬性名稱(chēng)與屬性值,通常都是利用String 的方式來(lái)存取,必要時(shí)候再進(jìn)行轉換物件型態(tài)為實(shí)質(zhì)的屬性型態(tài)。話(huà)說(shuō)回來(lái),現在設定檔的撰寫(xiě)方式琳瑯滿(mǎn)目,Jakartacommons-configuration 是否可以滿(mǎn)足我們的需求?我本身大多採用 Properties 或 XML的方式在撰寫(xiě)設定檔,也許會(huì )有人將設定在資料庫之中,很令人高興的是 commons-configuration 的確可以涵蓋大多數人的需求。
由 http://jakarta.apache.org/commons/configuration/下載最新的版本,將它解壓縮到一個(gè)目錄之後,我們可以看到該目錄之中,有一個(gè) commons-configuration-##.##.jar並且將該 jar 檔案放到你的 /WEB-INF/lib/ 之下,當 Application Server 重新載入該 webapp 之後,就代表可以使用了。
因為 Servlet 可以設定在 webapp 啟動(dòng)的同時(shí),馬上呼叫。只需要在 web.xml 設定load-on-startup 即可,所以我們利用該技巧,將相關(guān)的設定屬性值在剛開(kāi)始的時(shí)候取出放到某個(gè) instance之中,這樣就可以提供給其他程式直接使用。
範例 1-1:透過(guò) SystemInitServlet 載入 system-config.xml
system-config.xml 放在 /WEB-INF/conf 之下










接著(zhù)再利用 SystemInitServlet 中利用 XMLConfiguratin 取得 system-config.xml Configuration config = new XMLConfiguration (configPath);






這樣,我就可以自由利用這幾個(gè)設定在 system-config.xml 的屬性,進(jìn)行系統中的設定。
範例 1-2:透過(guò) SystemInitServlet 載入 system-config.properties
其實(shí)我們僅僅需要修改 Configuration 讀取的檔案位置,並且修改為 properties 檔案名稱(chēng)。最後利用 PropertiesConfiguration 就可以讀取相關(guān)的資訊,也可以讀取 Collection 型態(tài)的集合屬性。
Configuration config = new PropertiesConfiguration(configPath);
另外,我們可以 config.setProperties(“addproperty”, “this is added by configuration” ); 接著(zhù) config.save() 將相關(guān)設定值存放到該 properties 的檔案之中。
總之,透過(guò) commons-configuration 可以簡(jiǎn)化您在存取設定檔案的工作,就不用花時(shí)間去了解 FILE IO的程式運作方式,更可以簡(jiǎn)化 Java 存取 XML 的工作。 當然,隨著(zhù)版本的演進(jìn),功能越來(lái)越多,例如兩個(gè)設定檔的合併、plist的支援等等,所以可預期的是,我們將可以用到更多支援的設定檔方式。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1379348
聯(lián)系客服