示例一:解析XML配置

2018-12-24 22:04 更新
  • 基于XML文件的基礎配置格式如下, 為了配合測試代碼, 請將該文件命名為configuration.xml并放置在config_home路徑下的cfgs目錄里:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- XML根節(jié)點為properties -->
    <properties>
    
        <!-- 分類節(jié)點為category, 默認分類名稱為default -->
        <category name="default">
    
            <!-- 屬性標簽為property, name代表屬性名稱, value代表屬性值(也可以用property標簽包裹) -->
            <property name="company_name" value="Apple Inc."/>
    
            <!-- 用屬性標簽表示一個數(shù)組或集合數(shù)據(jù)類型的方法 -->
            <property name="products">
                <!-- 集合元素必須用value標簽包裹, 且value標簽不要包括任何擴展屬性 -->
                <value>iphone</value>
                <value>ipad</value>
                <value>imac</value>
                <value>itouch</value>
            </property>
    
            <!-- 用屬性標簽表示一個MAP數(shù)據(jù)類型的方法, abc代表擴展屬性key, xyz代表擴展屬性值, 擴展屬性與item將被合并處理  -->
            <property name="product_spec" abc="xzy">
                <!-- MAP元素用item標簽包裹, 且item標簽必須包含name擴展屬性(其它擴展屬性將被忽略), 元素值由item標簽包裹 -->
                <item name="color">red</item>
                <item name="weight">120g</item>
                <item name="size">small</item>
                <item name="age">2015</item>
            </property>
        </category>
    </properties>
    
  • 新建配置類DemoConfig, 通過@Configuration注解指定配置文件相對路徑

    @Configuration("cfgs/configuration.xml")
    public class DemoConfig extends DefaultConfiguration {
    }
    
  • 測試代碼, 完成模塊初始化并加載配置文件內(nèi)容:

    public static void main(String[] args) throws Exception {
        YMP.get().init();
        try {
            DemoConfig _cfg = new DemoConfig();
            if (Cfgs.get().fillCfg(_cfg)) {
                System.out.println(_cfg.getString("company_name"));
                System.out.println(_cfg.getMap("product_spec"));
                System.out.println(_cfg.getList("products"));
            }
        } finally {
            YMP.get().destroy();
        }
    }
    
  • 執(zhí)行結(jié)果:

    Apple Inc.
    {abc=xzy, color=red, size=small, weight=120g, age=2015}
    [itouch, imac, ipad, iphone]
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號