常量转化为配置文件新思路
这一次,学了一个新的东西,可以说是思想上的革命了,我重来没有这么想过,把一些复杂的常量独立出来写成一个专门的配置文件,这样做的好处不少。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);
}
}