读取配置文件的工具类

来源:互联网 发布:越南历史 知乎 编辑:程序博客网 时间:2024/05/17 03:38
public final class PropUtil {

    /** 日志记录 */
    private static final Logger LOGGER = Logger.getLogger(PropUtil.class);
    /** 属性列表 */
    private static Properties properties;
    /** 常量字符串true */
    private static final String TRUE = "true";

    /**
     * 构造函数
     *
     */
    private PropUtil() {

    }

    /**
     * 关于方法的描述: 加载配置文件config.properties
     * 
     * @Date:2014-1-24下午1:54:12
     */
    public static synchronized void init() {
        properties = new Properties();
        InputStream stream = PropUtil.class.getResourceAsStream("/config.properties");
        try {
            properties.load(stream);
            LOGGER.info("加载config文件成功");
        } catch (IOException e) {
            LOGGER.error("加载config文件失败", e);
        } finally {
            try {
                stream.close();
            } catch (IOException e) {
                LOGGER.error("init方法stream.close出错", e);
            }
        }
    }

    /**
     * 关于方法的描述:根据类型 提取config.properties中提取配置
     * 
     * @param key
     *            要提取的配置信息名称
     * @return 提取的配置信息
     * @Date:2014-1-24下午1:56:13
     */
    public static String get(final String key) {
        if (properties == null) {
            init();
        }
        return (String) properties.get(key);
    }

    // ---------从config.properties中取配置(除目录和日志配置外不建议配置到该文件)--------

    /**
     * 关于方法的描述:Gvunor url
     * 
     * @return guvnor url
     * @Date:2014-1-24下午1:57:46
     */
    public static String getGuvnorUrl() {
        return get("GUVNOR_URL");
    }

    /**
     * 关于方法的描述:XSD存放路径
     * 
     * @return XSD存放路径
     * @Date:2014-1-24下午1:57:46
     */
    public static String getXsdPath() {
        return get("XSD_PATH");
    }

    /**
     * 关于方法的描述:MODEL路径
     * 
     * @return MODEL路径
     * @Date:2014-1-24下午1:58:09
     */
    public static String getModelPath() {
        return get("MODEL_PATH");
    }

    /**
     * 关于方法的描述:服务存放路径
     * 
     * @return 服务存放路径
     * @Date:2014-1-24下午1:58:27
     */
    public static String getRootPath() {
        return get("ROOT_PATH");
    }

    /**
     * 关于方法的描述:SUPPLIER存放路径
     * 
     * @return SUPPLIER存放路径
     * @Date:2014-1-24下午1:58:49
     */
    public static String getSupplierPath() {
        return get("SUPPLIER_PATH");
    }

    /**
     * 关于方法的描述:用于转换成drl文件的java类存放路径
     * 
     * @return 用于转换成drl文件的java类存放路径
     * @Date:2014-2-7下午4:52:53
     */
    public static String getTranslatePath() {
        return get("TRANSLATE_PATH");
    }

    /**
     * 关于方法的描述:设置自定义logger的日志是否同时输出到平台日志文件中
     * 
     * @return 返回结果(服务器设置为false,本地设置为true)
     * @Date:2014-1-24下午1:59:31
     */
    public static boolean isCustomLoggerAddToConsoleSwitch() {
        return TRUE.equals(get("CUSTOM_LOGGER_ADD_SWITCH"));
    }

    /**
     * 关于方法的描述:设置自定义logger是否使用自定义的appender
     * 
     * @return true为使用/false不使用
     * @Date:2014-1-24下午2:00:27
     */
    public static boolean isCustomAppenderSwitch() {
        return TRUE.equals(get("CUSTOM_APPENDER_SWITCH"));
    }

    /**
     * 关于方法的描述:日志存放路径
     * 
     * @return 日志存放路径
     * @Date:2014-1-24下午2:01:33
     */
    public static String getLogBasePath() {
        return get("LOG_BASE_PATH");
    }

    /**
     * 关于方法的描述:
     * 
     * @return 日志的后3位的顺序号
     * @Date:2016年5月16日下午1:55:45
     */
    public static String getLogNameByNum() {
        String num = get("LOG_NAME_NUM");
        return num;
    }

}

0 0