示例一:解析XML配置

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

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

    @Configuration("cfgs/configuration.xml")
    public class DemoConfig extends DefaultConfiguration {
    }
    
  • 測(cè)試代碼, 完成模塊初始化并加載配置文件內(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)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)