javaweb配置文件对象Properties管理

在javaweb开发的时候我们一般将数据库连接信息配置到db.properties中,然后再通过io读入到输入流里,再通过流来创建Properties对象,从而可以根据对象Properties的方法getProperty(key)来获得value值,完成整个功能很容易,又碰巧数据库连接参数配置文件通常只要读取一次就可以了,所以这样做确实没啥问题,但如果系统里有一个配置文件并且整个系统的不同地方要去读取它,还使用上述的方法么,用当然也没问题,但是会出现大量的重复的properties对象,造成资源浪费,因此我们需要写一个公共类来管理Properties,思路就是将一个配置文件的properties对象存入到HashMap中key为配置文件的名字,这样下次其它地方要用这个配置文件的参数就可以直接从HashMap中取了。

代码如下:

package com.shengsiyuan.imis.util;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class ConfigHelper {

    //作为Properties缓存
    public static Map conf = new HashMap();
    
    public static URL findResource(String configName) {
        
        URL resourceURL = null;
        resourceURL = Thread.currentThread().getContextClassLoader().getResource(configName);
        if (resourceURL != null) {
            return resourceURL;
        }
        
        resourceURL = ConfigHelper.class.getResource(configName);
        
        if (resourceURL != null) {
            return resourceURL;
        }
        
        resourceURL = ClassLoader.getSystemClassLoader().getResource(configName);
        
        return resourceURL;
        
    }
    
    public static Properties getProperties(String name) throws IOException {
        Properties prop = conf.get(name);
        if (prop == null) {
            InputStream is = findResource(name).openStream();
            prop = new Properties();
            prop.load(is);
            is.close();
            conf.put(name, prop);
            return prop;
        }
        return prop;
    }

}

你可能感兴趣的:(javaweb配置文件对象Properties管理)