首页 > 代码库 > Configuration

Configuration

package edu.fzu.ir.util;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.util.Properties;import org.apache.log4j.Logger;/** * 读取配置文件的工具类 * 提供了静态读取配置文件的方法 * 改配置文件是放在每个worker节点?? * worker启动时根据配置文件路径读取该配置文件 * @author hasee * */public class Configuration {    private static Logger logger = Logger.getLogger(Configuration.class);    private static Properties properties;    private Configuration() {}    /**     * 通过配置文件的路径获取相关的配置,存储在properties中,worker每次启动时调用该方法     * @param confPath 配置文件的路??     */    public static void loadConfiguration(String confPath) {        //判断properties是否是空,如果不为空表示已经加载过配置文件,不需要再加载        if(properties==null) {            //利用InputStreamReader指定利用utf-8编码读取properties文件            //这样是为了解决配置文件中的中文乱码问??            InputStream inputStream = null;            InputStreamReader isr = null;            try {                inputStream = new FileInputStream(new File(confPath));                isr = new InputStreamReader(inputStream, "UTF-8");            } catch (FileNotFoundException e) {                //文件未找到时,输出错误日志,并停止系??                logger.error(e);                System.exit(0);            } catch (UnsupportedEncodingException e) {                logger.error(e);                System.exit(0);            }            properties = new Properties();            try {                //加载并存储到properties                logger.info("load configuration from : "+ confPath);                properties.load(isr);                logger.info("load succeed!");            } catch (IOException e) {                logger.error(e);            } finally {                //关闭资源                try {                    if(inputStream != null) {                        inputStream.close();                    }                    if(isr != null) {                        isr.close();                    }                } catch (IOException e) {                    logger.error(e);                }            }        }    }        /**     * 获取配置文件中某????配置??若不存在返回null     * @param key 配置项的key??     * @return     */    public static String getProperties(String key) {        String s = null;        if(properties != null){            s = properties.getProperty(key);        }        return s;    }}

 

Configuration