项目中自动读取properties文件

来源:互联网 发布:网络唤醒数据包 编辑:程序博客网 时间:2024/05/19 03:30
工具类: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 {/*** 如果在加载配置文件中时隔一秒钟文件内容将重新读取*/@Overridepublic long getTimeToLive(String baseName, Locale locale) {return 1000;}@Overridepublic 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配置文件中的配置如下:#messagemessage.username=adminmessage.password=adminmessage.url=www.xxxx.com另外,引用配置文件中的变量方法为:String username = ResourceUtil.getConf("message.username");String password = ResourceUtil.getConf("message.password");String messageUrl = ResourceUtil.getConf("message.url");