项目中自动读取properties文件

工具类:
package com.jjmc.dcl.util;
import org.apache.log4j.Logger;
import java.util.Locale;
import java.util.ResourceBundle;
/**
 * @description 动态读取properties文件
 */
public class ResourceUtil {
private static Logger  logger= Logger.getLogger(ResourceUtil.class);
private final static MyResourceBundleControl ctl = new MyResourceBundleControl();
private static ResourceBundle getBundle(String pro) {
return ResourceBundle.getBundle(pro, Locale.getDefault(), ctl);
}
/**
* 读取conf.properties
* @param key
* @return value
*/
public static String getConf(String key) {
String string = "";
try {
string = getBundle("messageConfig/message").getString(key);
} catch (Exception e) {
logger.error("getConf error", e);
}
return string;
}
/**
* 重载控制器
*/
private static class MyResourceBundleControl extends ResourceBundle.Control {

/**
* 如果在加载配置文件中时隔一秒钟文件内容将重新读取
*/
@Override
public long getTimeToLive(String baseName, Locale locale) {
return 1000;
}

@Override
public boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime) {
return true;
}
}
}
注意:string = getBundle("messageConfig/message").getString(key);
这句代码中,文件路径要正确。messageConfig/message是在resources下有一个文件夹messageConfig,里面有个文件message.properties
配置文件中的配置如下:
#message
message.username=admin
message.password=admin
message.url=www.xxxx.com
另外,引用配置文件中的变量方法为:
String username = ResourceUtil.getConf("message.username");
String password = ResourceUtil.getConf("message.password");
String messageUrl = ResourceUtil.getConf("message.url");


posted @ 2017-10-29 20:52  me-ht  阅读(248)  评论(0编辑  收藏  举报