예 1: XML 구성 구문 분석


  • XML 파일을 기반으로 한 기본 구성 형식은 다음과 같습니다. 테스트 코드를 일치시키려면 파일 이름을configuration.xml로 지정하고 config_home 경로 아래의 cfgs 디렉터리에 배치하세요. 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 {
    }
  • 새 구성 클래스 DemoConfig를 생성하고 @Configuration 주석을 통해 구성 파일의 상대 경로를 지정합니다.

    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]
실행 결과:
🎜🎜rrreee🎜🎜🎜🎜🎜