程序的自定義設置是一個重要的功能,大多數程序都會提供自定義配置的方法,提供用戶根據個人喜好、運行環境來配置軟件的使用方式。程序的配置方式存在多樣性,一般會采用windows格式的ini配置文件或者注冊表方式,java格式的properties屬性文件,隨著xml文件在程序開放中的普及,也有越來越多的配置開始使用xml的文件方式,例如java EE中的部署描述文件。
我們知道,在java中存在很多xml的處理方式,xml組織的dom、sax方法,apache以及sun官方都提供的眾多的實現,也有很多其他第三方的優秀類庫支持,例如jdom,以及dom4j等。使用比較底層的方式來實現xml的讀取,轉換、以及校驗和保存,需要編寫不少的代碼來具體實現,但是我們現在多了一個新的選擇,JAXB即Java Architecture for XML Binding,xml在java語言中的一個新規范,可以方便的從xml文件到java類,以及從java類到xml文件的轉換。
使用JAXB需要下載sun官方的實現類庫,可以在sun的glassfish網站來下載。利用JAXB進行開發的步驟如下:
1、定義xml文件的schema,用於定義xml文件的格式規范。
2、運行xjc.bat或者xjc.sh腳本生成在schema中定義的java對象。
3、使用javax.xml.bind.JAXB類的marshal靜態方法來根據java對象生成xml文件。
4、實現javax.xml.bind.JAXB類的unmarshal靜態方法從xml文件裝載java對象。
相信在一般的程序配置方式中,使用JAXB是一個簡單,方便的做法,無論是加載自定義配置、或者是保存配置。把對配置參數的處理,轉化為普通java對象的操作,對於參數的加載或者保存,則交與JAXB來實現,因此都極為輕松。
Java語言實現配置的其他方式:
1、從jdk1.4開始,Java提供了java.util.prefs包,包含了一些配置的實現,包含屬性文件、以及windows注冊表等的讀寫。同sun提供的logging功能一樣,很少被人使用。
2、Apache的common configuration 組件也提供了對配置的一些處理,提供了多種配置的支持,屬性文件、xml文件、數據庫以及jndi方式等,但對於小程序來說,存在一定的復雜性,同時也引入了多個其他第三方jar庫的引用。