示例一:解析XML配置
-
基于XML文件的基础配置格式如下, 为了配合测试代码, 请将该文件命名为configuration.xml并放置在
config_home
路径下的cfgs目录里:<?xml version="1.0" encoding="UTF-8"?> <!-- XML根节点为properties --> <properties> <!-- 分类节点为category, 默认分类名称为default --> <category name="default"> <!-- 属性标签为property, name代表属性名称, value代表属性值(也可以用property标签包裹) --> <property name="company_name" value="Apple Inc."/> <!-- 用属性标签表示一个数组或集合数据类型的方法 --> <property name="products"> <!-- 集合元素必须用value标签包裹, 且value标签不要包括任何扩展属性 --> <value>iphone</value> <value>ipad</value> <value>imac</value> <value>itouch</value> </property> <!-- 用属性标签表示一个MAP数据类型的方法, 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 { }
-
测试代码, 完成模块初始化并加载配置文件内容:
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(); } }
-
执行结果:
Apple Inc. {abc=xzy, color=red, size=small, weight=120g, age=2015} [itouch, imac, ipad, iphone]