spring加载的配置写入到map中,方便取用

来源:互联网 发布:多玩数据库5.4 编辑:程序博客网 时间:2024/06/07 05:25
import java.util.*;import org.apache.log4j.Logger;import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;/** * spring加载的配置写入到map中,方便取用 * */public class ConfigInitLoadingConfigurer extends PropertyPlaceholderConfigurer {    private static HashMap<String, String> ctxPropertiesMap;    private static Logger log = Logger.getLogger(ConfigInitLoadingConfigurer.class);    @Override    protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props){        try{            super.processProperties(beanFactoryToProcess, props);            ctxPropertiesMap = new HashMap<String, String>();            for (Object key : props.keySet()) {                String keyStr = key.toString();                String value = props.getProperty(keyStr).toString();                ctxPropertiesMap.put(keyStr, value);            }        }catch(Exception e){            log.error("读取配置文件出错", e);            e.printStackTrace();        }    }    public static String getContextProperty(String name) throws Exception {        if(ctxPropertiesMap.containsKey(name)){            return ctxPropertiesMap.get(name);        }else{            throw new Exception("参数不存在");        }    }    public static void setContextProperty(String key, String value) {        if(key!=null && !key.equals("")){            ctxPropertiesMap.put(key, value);        }else{            log.error("参数名不能为空");        }    }}
阅读全文
0 0