常量转化为配置文件新思路

这一次,学了一个新的东西,可以说是思想上的革命了,我重来没有这么想过,把一些复杂的常量独立出来写成一个专门的配置文件,这样做的好处不少。1,代码更具有灵活性,可扩展性。2,只读取一次,把全部存储于内存中,要哪一个就调用哪一个,不用全部取出。现在把读取xml配置文件的代码公布出来。忘记的时候可以看。

配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<exprots>
<export>
    <paramsName value="GANBUDEPT"/>
    <filename value="处级部门正职候选名单.xls"/>
    <tableViewName value=" R_cadremanageinfo"/>
    <fieldsList value=" name,born,backedu,skillposilevel,curposilevel,curposileveltime,remark "/>
    <titleList value="姓名,出生日期,学历,专技职务级别,当前职务级别,任当前职级日期,备注"/>
</export>
<export>
    <paramsName value="GANBUDEPTFU"/>
    <filename value="处级部门副职候选名单.xls"/>
    <tableViewName value=" R_cadremanageinfo"/>
    <fieldsList value=" name,born,backedu,skillposilevel,curposilevel,curposileveltime,remark "/>
    <titleList value="姓名,出生日期,学历,专技职务级别,当前职务级别,任当前职级日期,备注"/>
</export>
<export>
    <paramsName value="GANBUASSISTANT"/>
    <filename value="处级助理候选名单.xls"/>
    <tableViewName value=" R_cadremanageinfo"/>
    <fieldsList value=" name,born,backedu,remark "/>
    <titleList value="姓名,出生日期,学历,备注"/>
</export>
<export>
    <paramsName value="GANBUCOLLEGE"/>
    <filename value="二级学院学生科科长候选名单.xls"/>
    <tableViewName value=" R_cadremanageinfo"/>
    <fieldsList value=" name,curposi,pluofsoci "/>
    <titleList value="姓名,当前职务,社会兼职"/>
</export>
<export>
    <paramsName value="GANBUMPC"/>
    <filename value="市委组织部中层领导干部格式.xls"/>
    <tableViewName value=" R_cadremanageinfo"/>
    <fieldsList value=" name,curposi,oriposi,curpositime,curposileveltime,sex,nation,born,registry,backedu,degree,backeduofworking,degreeofworking,skillposi,joinworktime,joinpartytime,remark "/>
    <titleList value="姓名,当前职务,原任职务,任职时间,任现职级时间,性别,民族,出生年月,籍贯,
             学历,学位,在职教育学历,在职教育学位,专业技术职务,参加工作时间,入党时间,备注"/>
</export></exports>

package com.my.util;

import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;




public class RleaseXml {
   // 用map存储数据
    private static Map<String,String[]> map =new HashMap<String,String[]>();
    public void RleaseXml(){
        initXMLByName("exportCfg.xml");
    }
    
    public void initXMLByName(String fileName){
        /**
         * 解析完成之后,对变量赋值并放入map中
         */
        SAXReader saxReader =new SAXReader();
        Document document =null;
        try{
            URL xmlPath =this.getClass().getClassLoader().getResource(fileName);
            document =saxReader.read(xmlPath);
            Element root =document.getRootElement();
            int a=    root.elements().size();
            String rootName = root.getName();
            
            for(Iterator iter = root.elementIterator();iter.hasNext();){
                Element element =(Element)iter.next();
                String look = element.getName();
            
                String[] strs = new String[5];
                for(int i=0;i<a;i++){
                    strs[0]= element.element("paramsName").attributeValue("value");
                    strs[1] = element.element("filename").attributeValue("value");
                    strs[2] = element.element("tableViewName").attributeValue("value");
                    strs[3] = element.element("fieldsList").attributeValue("value");
                    strs[4] = element.element("titleList").attributeValue("value");
                    map.put(strs[0], strs);
                    
                }
                
                
                
                
            }
        }
        catch(Exception e){
            e.getStackTrace();
        }
        
    }
    //根据Key,得到value
    public static String[] getStringByName(String name){
        return map.get(name);
    }
}

posted on 2014-02-18 17:44  暖暖小时候  阅读(249)  评论(0编辑  收藏  举报

导航