日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

常量資源文件工具類

張軍 3207 0

常量資源文件工具類,讀取配置文件常量的工具類,可放入內(nèi)存,速度及快

張軍博客

package zj.message.util;

import java.io.Serializable;
import java.text.MessageFormat;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import org.apache.log4j.Logger;

import zj.check.util.CheckUtil;
import zj.java.util.JavaUtil;

/**
 * 常量資源文件工具類<br>
 * 
 * @version 1.00 (2011.12.02)
 * @author SHNKCS 張軍 {@link  <a target=_blank href="http://www.sfpk123.com">張軍個人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 */
public class MessageConstantsUtil implements Serializable {
	private static final long serialVersionUID = 1L;
	private transient static final Logger log = Logger.getLogger(MessageConstantsUtil.class);
	public static String AJAX_SUCCESS;
	public static String AJAX_FAIL;
	public static String AJAX_MSG;
	/** 資源鍵值對 **/
	public static final Map<String, String> CONSTANT_KEY_VALUE = Collections.synchronizedMap(new HashMap<String, String>());
	/** 資源文件地址集合,無序 **/
	public static Set<String> CONFIGS = new HashSet<String>();
	/** 國際化資源文件/資源文件內(nèi)容初使化 **/
	static {
		AJAX_SUCCESS = "success";
		AJAX_FAIL = "fail";
		AJAX_MSG = "msg";
		loadConfig(null);
		setConstantKeyValueToMemory();
	}

	// 資源文件
	/**
	 * 設(shè)置資源文件路徑
	 * 
	 * @param configFile
	 *            <p>
	 *            ./constant.properties
	 *            </p>
	 *            <p>
	 *            ./systemConfig.properties
	 *            </p>
	 *            <p>
	 *            ./app.properties
	 *            </p>
	 * @return 資源文件值
	 */
	public static void loadConfig(String configFile) {
		// 默認(rèn)注冊資源文件地址
		CONFIGS.add("./constant.properties");
		CONFIGS.add("./systemConfig.properties");
		CONFIGS.add("./app.properties");
		// 添加新的資源文件地址
		String[] configs = JavaUtil.split(configFile, ",");
		for (String s : configs) {
			if (CheckUtil.isNull(s))
				continue;
			CONFIGS.add(s);
		}
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param notExistIsNull
	 *            <p>
	 *            true:如果資源文件鍵不存在,則返回null
	 *            </p>
	 *            <p>
	 *            false:如果資源文件鍵不存在,則返回資源文件key
	 *            </p>
	 * @return 資源文件值
	 */
	public static String getConstantValue(String key, boolean notExistIsNull) {
		String value = null;
		boolean exists = false;
		for (String path : CONFIGS) {
			value = ConfigUtil.getConfig(path, key);
			if (value != null && !value.equals(key)) {
				exists = true;
				break;
			}
		}
		if (!exists) {
			if (notExistIsNull) {
				value = null;
			} else {
				value = key;
			}
		}
		CONSTANT_KEY_VALUE.put(key, value);
		return value;
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @return 資源文件值
	 */
	public static String getConstantValue(String key) {
		return getConstantValue(key, true);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param notExistIsNull
	 *            <p>
	 *            true:如果資源文件鍵不存在,則返回null
	 *            </p>
	 *            <p>
	 *            false:如果資源文件鍵不存在,則返回資源文件key
	 *            </p>
	 * @param arguments
	 *            資源文件參數(shù)
	 * @return 資源文件值
	 */
	public static String getConstantValueByParams(String key, boolean notExistIsNull, Object... arguments) {
		return getValueByParams(getConstantValue(key, notExistIsNull), arguments);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param arguments
	 *            資源文件參數(shù)
	 * @return 資源文件值
	 */
	public static String getConstantValueByParams(String key, Object... arguments) {
		return getConstantValueByParams(key, false, arguments);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param paths
	 *            資源文件路徑集合
	 * @param notExistIsNull
	 *            <p>
	 *            true:如果資源文件鍵不存在,則返回null
	 *            </p>
	 *            <p>
	 *            false:如果資源文件鍵不存在,則返回資源文件key
	 *            </p>
	 * @return 資源文件值
	 */
	public static String getConstantValueByMemory(String key, Set<String> paths, boolean notExistIsNull) {
		String value = null;
		if (CheckUtil.isNull(key)) {
			// 先清除緩存
			CONSTANT_KEY_VALUE.clear();
			// 最好只調(diào)用一次
			CONSTANT_KEY_VALUE.putAll(ConfigUtil.getConstantKeyValues(paths));
			log.debug("加載所有常量數(shù)據(jù)至緩存成功");
		} else {
			if ((value = CONSTANT_KEY_VALUE.get(key)) == null) {
				value = getConstantValue(key, notExistIsNull);
				CONSTANT_KEY_VALUE.put(key, value);
			}
		}
		return value;
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param paths
	 *            資源文件路徑集合
	 * @return 資源文件值
	 */
	public static String getConstantValueByMemory(String key, Set<String> paths) {
		return getConstantValueByMemory(key, paths, false);
	}

	/**
	 * 設(shè)置所有資源鍵值
	 */
	public static void setConstantKeyValueToMemory() {
		setConstantKeyValueToMemory(CONFIGS);
	}

	/**
	 * 設(shè)置所有資源鍵值
	 */
	public static void setConstantKeyValueToMemory(boolean notExistIsNull) {
		setConstantKeyValueToMemory(CONFIGS, notExistIsNull);
	}

	/**
	 * 設(shè)置所有資源文件鍵值到內(nèi)存中
	 * 
	 * @param config
	 */
	public static void setConstantKeyValueToMemory(Set<String> config) {
		getConstantValueByMemory(null, config);
	}

	/**
	 * 設(shè)置所有資源文件鍵值到內(nèi)存中
	 * 
	 * @param config
	 */
	public static void setConstantKeyValueToMemory(Set<String> config, boolean notExistIsNull) {
		getConstantValueByMemory(null, config, notExistIsNull);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param notExistIsNull
	 *            <p>
	 *            true:如果資源文件鍵不存在,則返回null
	 *            </p>
	 *            <p>
	 *            false:如果資源文件鍵不存在,則返回資源文件key
	 *            </p>
	 * @return 資源文件值
	 */
	public static String getConstantValueByMemory(String key, boolean notExistIsNull) {
		return getConstantValueByMemory(key, CONFIGS, notExistIsNull);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @return 資源文件值
	 */
	public static String getConstantValueByMemory(String key) {
		return getConstantValueByMemory(key, true);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param notExistIsNull
	 *            <p>
	 *            true:如果資源文件鍵不存在,則返回null
	 *            </p>
	 *            <p>
	 *            false:如果資源文件鍵不存在,則返回資源文件key
	 *            </p>
	 * @param arguments
	 *            資源文件參數(shù)
	 * @return 資源文件值
	 */
	public static String getConstantValueByMemoryParams(String key, boolean notExistIsNull, Object... arguments) {
		return getValueByParams(getConstantValueByMemory(key, notExistIsNull), arguments);
	}

	/**
	 * 獲取資源文件值
	 * 
	 * @param key
	 *            資源文件key
	 * @param arguments
	 *            資源文件參數(shù)
	 * @return 資源文件值
	 */
	public static String getConstantValueByMemoryParams(String key, Object... arguments) {
		return getConstantValueByMemoryParams(key, false, arguments);
	}

	/**
	 * 配置文件內(nèi)容取得帶參數(shù)
	 * 
	 * @param value
	 * @param arguments
	 * @return
	 */
	public static String getValueByParams(String value, Object... arguments) {
		try {
			return MessageFormat.format(value, arguments);
		} catch (Exception e) {
			e.printStackTrace();
			return value;
		}
	}

	/**
	 * 打印debug信息
	 * 
	 * @return
	 */
	public static void debugString() {
		log.debug("資源文件列表如下:");
		for (String s : CONFIGS) {
			log.debug("CONFIGS:" + s);
		}
		log.debug("CONSTANT_KEY_VALUE:" + CONSTANT_KEY_VALUE.entrySet());
	}

}



更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 思茅市| 酉阳| 廊坊市| 灵丘县| 葫芦岛市| 定安县| 桂平市| 林州市| 重庆市| 富锦市| 大庆市| 新营市| 黔江区| 神农架林区| 镇巴县| 天等县| 土默特右旗| 锡林浩特市| 清水县| 安丘市| 祁阳县| 垣曲县| 宜黄县| 广南县| 绥棱县| 汉川市| 福泉市| 尉氏县| 商河县| 广宁县| 林州市| 漳州市| 绍兴市| 克什克腾旗| 滕州市| 密山市| 江安县| 榆树市| 泾源县| 邛崃市| 肥城市|