打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Lesson1:透過 commons-configuration 存取設定檔

 在我們撰寫一些系統的時候,往往需要設定一些基本的屬性,在使用 Java 進行 Web 開發之中,可以將相關設定放在 JNDI Server再透過 context lookup 重量級的方式來取得相關的屬性。不過,有時候簡單的環境,不必耗時耗力去搞清楚如何去使用 Javanaming 的技術,往往不過是要讀取一些設定檔罷了,所以我們這時候可以利用 Jakarta commons-configuration的小工具, 來讓我們簡化這方面的工作。

什麼叫做一個設定檔?簡單來說,一個設定檔最重要的就是有屬性名稱與屬性值,通常都是利用String 的方式來存取,必要時候再進行轉換物件型態為實質的屬性型態。話說回來,現在設定檔的撰寫方式琳瑯滿目,Jakartacommons-configuration 是否可以滿足我們的需求?我本身大多採用 Properties 或 XML的方式在撰寫設定檔,也許會有人將設定在資料庫之中,很令人高興的是 commons-configuration 的確可以涵蓋大多數人的需求。
http://jakarta.apache.org/commons/configuration/下載最新的版本,將它解壓縮到一個目錄之後,我們可以看到該目錄之中,有一個 commons-configuration-##.##.jar並且將該 jar 檔案放到你的 /WEB-INF/lib/ 之下,當 Application Server 重新載入該 webapp 之後,就代表可以使用了。

因為 Servlet 可以設定在 webapp 啟動的同時,馬上呼叫。只需要在 web.xml 設定load-on-startup 即可,所以我們利用該技巧,將相關的設定屬性值在剛開始的時候取出放到某個 instance之中,這樣就可以提供給其他程式直接使用。

範例 1-1:透過 SystemInitServlet 載入 system-config.xml

system-config.xml 放在 /WEB-INF/conf 之下

 

<config>
    
<ip>10.10.1.1</ip>
    
<account>jini</account>
    
<password>jakarta99</password>
    
<roles>
        
<role>admin</role>
        
<role>manager</role>
        
<role>user</role>
    
</roles>
</config>

 


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

 

String ip = config.getString("ip");
String account 
= config.getString("account");
String password 
= config.getString("password");
List roles 
= config.getList("roles.role");


這樣,我就可以自由利用這幾個設定在 system-config.xml 的屬性,進行系統中的設定。

範例 1-2:透過 SystemInitServlet 載入 system-config.properties

其實我們僅僅需要修改 Configuration 讀取的檔案位置,並且修改為 properties 檔案名稱。最後利用 PropertiesConfiguration 就可以讀取相關的資訊,也可以讀取 Collection 型態的集合屬性。

Configuration config = new PropertiesConfiguration(configPath);

另外,我們可以 config.setProperties(“addproperty”, “this is added by configuration” ); 接著 config.save() 將相關設定值存放到該 properties 的檔案之中。

總之,透過 commons-configuration 可以簡化您在存取設定檔案的工作,就不用花時間去了解 FILE IO的程式運作方式,更可以簡化 Java 存取 XML 的工作。 當然,隨著版本的演進,功能越來越多,例如兩個設定檔的合併、plist的支援等等,所以可預期的是,我們將可以用到更多支援的設定檔方式。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1379348

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Apache Commons Configuration 使用 (自动加载修改配置)
mybatis3 空字段null字段不返回
Apache Commons Configuration 包使用
common
改变应用程序配置文件的文件名
Apache Commons-configuration 学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服