首页>代码>spring mvc基于dom4j xml和ini文件操作开发ConfigManger系统管理源码>/ConfigManager/src/com/rayda/configManager/configOpertion/ConfigFileOpertion.java
package com.rayda.configManager.configOpertion; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONObject; import com.rayda.util.ConfigReader; import com.rayda.util.INIOpertion; import com.rayda.vo.ConfigDBBean; import com.rayda.vo.ConfigFileBean; import com.rayda.vo.ProxoolBean; import com.rayda.vo.iswitchBean; /** * @description 文件配置管理类 * @project ConfigManager * @author shiyang * @date 2015-5-6 上午10:48:41 * */ public class ConfigFileOpertion { public void getFileConfig() { getConfigFileInfo(); if(!cfgFileList.isEmpty()) { fileIniMap.clear(); fileXmlMap.clear(); //读取FileList中文件,逐一再去读取宿主配置 for(int i=0;i<cfgFileList.size(); i++) { ConfigFileBean fileBean =new ConfigFileBean(); fileBean= cfgFileList.get(i); if(fileBean.getFileType().equals("xml")) { readXmlCfg(fileBean); } if(fileBean.getFileType().equals("ini")) { readIniCfg(fileBean); } } } } public int alterCfgManagerInfo(String fileName,List<ConfigFileBean> configFileBean,List<ConfigDBBean> configDBBean,String nodeName) { int rv =0; if(nodeName.equals("FileInfo")) { rv=ConfigReader.getInstance().writeCfgManagerFile(xmlFilePath+File.separator+fileName,configFileBean,nodeName); } else { rv=ConfigReader.getInstance().writeDBManagerFile(xmlFilePath+File.separator+fileName,configDBBean,nodeName); } return rv; } //修改配置文件中的配置信息 public int alterXmlConfigInfo(String fileName, List<iswitchBean> iswitchList,List<ProxoolBean> proxoollist,String nodeName) { String xmlPath = ""; int rv =0; for (ConfigFileBean configFileBean : cfgFileList) { if( configFileBean.getFileName().equals(fileName)) { xmlPath = configFileBean.getFilePath(); break; } } if(fileName.equals("proxool.xml")) { rv=ConfigReader.getInstance().modifyProxoolXml(xmlPath+File.separator+fileName, proxoollist); } else{ rv=ConfigReader.getInstance().writeXMLFile(xmlPath+File.separator+fileName,iswitchList,nodeName); } return rv; } public int alterCfgManagerProxoolInfo( List<ProxoolBean> proxoolBean) { int rv =0; rv=ConfigReader.getInstance().modifyProxoolXml(xmlFilePath+File.separator+"proxool.xml", proxoolBean); return rv; } public void alterIniConfigInfo(String fileName,Map<String,String> map) { String xmlPath = ""; for (ConfigFileBean configFileBean : cfgFileList) { if( configFileBean.getFileName().equals(fileName)) { xmlPath = configFileBean.getFilePath(); break; } } INIOpertion iniOpertion=new INIOpertion(); String fileInfo=xmlPath+File.separator+fileName; for(Map.Entry<String, String> entry:map.entrySet()){ iniOpertion.modifyIni(fileInfo, entry.getKey(), entry.getValue()); } } //获取配置管理器自身的配置文件信息 public ArrayList<JSONObject> getCfgManagerFile(String fileName) { ArrayList<JSONObject> fileInfoMap = new ArrayList<JSONObject>(); readCfgInfo(fileInfoMap,fileName); return fileInfoMap; } //先获取配置问的配置 //将配置文件中配置的宿主文件信息解析到cfgFileBean private void getConfigFileInfo() { cfgFileList.clear(); String fileName="cfgFileManager.xml"; ArrayList<JSONObject> fileInfoMap=getCfgManagerFile(fileName); readCfgInfo(fileInfoMap,fileName); if(!fileInfoMap.isEmpty()){ for (int i = 0; i < fileInfoMap.size(); i++) { ConfigFileBean configFileBean =new ConfigFileBean(); if(!fileInfoMap.get(i).isEmpty()) { JSONObject fileInfo=fileInfoMap.get(i); try { configFileBean.setFileName(fileInfo.getString("fileName")); configFileBean.setFilePath(fileInfo.getString("filePath")); configFileBean.setFileType(fileInfo.getString("fileType")); cfgFileList.add(configFileBean); } catch (Exception e) { // TODO: handle exception return; } } } } } //读取本地的proxool.xml public ArrayList<JSONObject> readProxoolCfgManager() { ArrayList<JSONObject> fileInfoMap = new ArrayList<JSONObject>(); ConfigReader.getInstance().parserProxoolXml(xmlFilePath+File.separator+"proxool.xml", fileInfoMap); return fileInfoMap; } private void readXmlCfg(ConfigFileBean configFileBean) { try { ArrayList<JSONObject> fileInfoMap = new ArrayList<JSONObject>(); if(configFileBean.getFileName().equals("proxool.xml")) { ConfigReader.getInstance().parserProxoolXml(configFileBean.getFilePath()+File.separator+configFileBean.getFileName(), fileInfoMap); } else{ ConfigReader.getInstance().readXML(fileInfoMap, configFileBean.getFilePath(), configFileBean.getFileName(),true); } fileXmlMap.put(configFileBean.getFileName(),fileInfoMap); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void readIniCfg(ConfigFileBean configFileBean) { Map<Object, Object> iniInfoMap=new HashMap<Object, Object>(); INIOpertion iniOpertion=new INIOpertion(); String fileInfo=configFileBean.getFilePath()+File.separator+configFileBean.getFileName(); iniOpertion.getIniInfo(iniInfoMap, fileInfo); fileIniMap.add(iniInfoMap); } //读取配置配置文件的配置文件 private void readCfgInfo(ArrayList<JSONObject> fileInfoMap,String fileName) { try { fileInfoMap.clear(); ConfigReader.getInstance().readXML(fileInfoMap, xmlFilePath, fileName,true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public ArrayList<Object> getIniFileInfoMap() { if(fileIniMap.isEmpty()) { return null; } return fileIniMap; } public Map<String,ArrayList<JSONObject>> getXmlFileInfoMap() { if(fileXmlMap.isEmpty()) { return null; } return fileXmlMap; } public List<ConfigFileBean> getConfigFileList() { if(cfgFileList.isEmpty()) { return null; } return cfgFileList; } public int deleteXMLInfo(String primaryName,String primaryValue,String fileName,String rootNode,String nodeName) { String xmlPath = ""; for (ConfigFileBean configFileBean : cfgFileList) { if( configFileBean.getFileName().equals(fileName)) { xmlPath = configFileBean.getFilePath(); break; } } int rv =ConfigReader.getInstance().deleteXML(primaryName, primaryValue,xmlPath+File.separator+fileName,rootNode,nodeName); return rv; } private ArrayList<Object> fileIniMap = new ArrayList<Object>(); //宿主配置文件的信息 private Map<String,ArrayList<JSONObject>> fileXmlMap = new HashMap<String,ArrayList<JSONObject>>(); //宿主配置文件的信息 List<ConfigFileBean> cfgFileList=new ArrayList<ConfigFileBean>(); //配置宿主配置文件的信息 private final String xmlFilePath=Thread.currentThread().getContextClassLoader(). getResource("").getPath()+"config"+File.separator; //文件路径 }
最近下载更多
刘卫国 LV6
2021年11月25日
1006640152 LV11
2021年8月4日
xxx煜xxx LV5
2020年2月6日
zhjwgs LV15
2019年11月20日
xiaofei025 LV2
2019年10月6日
huangqq LV6
2019年5月13日
鲨鱼飞飞 LV9
2019年1月5日
身体牛奶 LV1
2018年4月2日
hl2017 LV6
2018年1月26日
chinafjfzlj LV31
2017年3月22日
最近浏览更多
暮雨2023 LV2
2023年3月20日
微信网友_6248713511227392 LV11
2022年12月5日
atopos12
2022年4月3日
暂无贡献等级
刘卫国 LV6
2021年11月25日
huaua7676 LV30
2021年8月29日
1006640152 LV11
2021年8月3日
1307216718
2021年6月28日
暂无贡献等级
枕花眠
2021年6月2日
暂无贡献等级
秦sir3067683450 LV10
2021年6月2日
dfoabsibff
2021年4月6日
暂无贡献等级