一个读取propeties配置文件的工具类,线程安全的
public class ConfigUtil {
private static Map<String,Properties> map = new HashMap<String,Properties>();
/**
* 根据Properties文件名称获取Properties对象
* @param name
* @return Properties
* @throws IOException
*/
private synchronized static Properties createProperties(String name) throws IOException{
Properties p = map.get(name);
if(p == null){
p = new Properties();
p.load(ConfigUtil.class.getResourceAsStream(name));
map.put(name, p);
}
return p;
}
/**
* 根据Properties文件名和其中的key获取value
* @param proName, key
* @return String value
* @throws IOException
*/
public static String getValue(String proName,String key) throws IOException{
return createProperties(proName).getProperty(key);
}
/**
* 根据mqttconfig.properties文件的key获取value
* @param String key
* @return String value
* @throws IOException
*/
public static String getValue(String mqttKey) throws IOException{
return createMQTTProperties().getProperty(mqttKey);
}
/**
* 专门获取mqttconfig.properties的Properties
* @param
* @return Properties p
* @throws IOException
*/
public static Properties createMQTTProperties() throws IOException{
Properties p = map.get("mqttconfig.properties");
if(p == null){
p = new Properties();
p.load(ConfigUtil.class.getResourceAsStream("/mqttconfig.properties"));
map.put("mqttconfig.properties", p);
}
return p;
}
public static void main(String[] args) throws IOException{
System.out.println(getValue("/mqttconfig.properties","port"));
}
}
一个读取propeties配置文件的工具类,线程安全的的更多相关文章
- 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil
基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直 ...
- Java Windows下读取注册表的工具类
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- 实现一个简单的http请求工具类
OC自带的http请求用起来不直观,asihttprequest库又太大了,依赖也多,下面实现一个简单的http请求工具类 四个文件源码大致如下,还有优化空间 MYHttpRequest.h(类定义, ...
- Java读取Maven工程下的配置文件,工具类
Java开发中,经常需要在maven工程中读取src/main/resources下的配置文件: 思路如下: Class.getClassLoader() 返回类加载器ClassLoader,进而可以 ...
- Java静态static工具类线程安全问题研究
针对静态方法有以下一些前提: 静态方法和实例方法的区别是静态方法只能引用静态变量,静态方法通过类名来调用,实例方法通过对象实例来调用 每个线程都有自己的线程栈,栈与线程同时创建,每一个虚拟机线程都有自 ...
- property_自己编写一个读取Property文件的Util类
读取property文件的Util类: 所需jar包: 编写PropertiesUtil类: package com.west.util.property; import java.io.InputS ...
- 分享一个关于jackson的Json工具类
直接贴代码: import org.codehaus.jackson.map.DeserializationConfig.Feature; import org.codehaus.jackson.ma ...
- 读取properties配置的工具类
@Service public class AppPropertiesManager implements DisposableBean{ @Value("${shortloan_rate_ ...
- 一个简单IP防刷工具类, x秒内最多允许y次单ip操作
IP防刷,也就是在短时间内有大量相同ip的请求,可能是恶意的,也可能是超出业务范围的.总之,我们需要杜绝短时间内大量请求的问题,怎么处理? 其实这个问题,真的是太常见和太简单了,但是真正来做的时候,可 ...
随机推荐
- Delphi 多线程 “尚未调用CoInitialize错误”的解决方法
在Delphi 多线程中出现“尚未调用CoInitialize错误”的解决方法 解决方法如下: function TMyThread.ExecTimer: Boolean;begin Resul ...
- 如何计算Java对象占用了多少空间?
在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小. 对象头 对象的头部至少有两个WORD, ...
- 解决多线程下simpleDateFormat的安全问题
// 日期格式化 private static final ThreadLocal<SimpleDateFormat> GMT_FORMATERS = new ThreadLocal< ...
- Photography theory: a beginner's guide(telegraph.co.uk)
By Diane Smyth, Tim Clark, Rachel Segal Hamilton and Lewis Bush 11:00AM BST 09 Jun 2014 Have you r ...
- Facade外观模式 笔记
Facede模式: 把内部系统复杂隐藏,提供一个方便统一的接口. 微波炉在界面简单操作下就可以烹饪出美味佳肴, 微波炉内部运作原理,各个组件互相交互运作,使用者并不需要关心. 而且关心的话可能没有多 ...
- ruby+rt标签的效果
代码如下: <ruby>我是孤行者<rt>wo shi gu xing zhe</tr></ruby> 效果如下
- NSURLConnection获取数据
- (void)loadDataFromUrl { NSURL* url = [NSURL URLWithString:@"http://m.weather.com.cn/data/1011 ...
- 微信公众平台java开发具体解释(project代码+解析)
说明: 本次的教程主要是对微信公众平台开发人员模式的解说,网络上非常多类似文章,但非常多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行解说分 ...
- [Angular 2] Handling Click Events with Subjects
While Angular 2 usually uses event handlers to manage events and RxJS typically uses Observable.from ...
- c++ map与 qt QMap insert 区别
当插入相同key的字段时, c++ map 会保留原来的字段, QMap 则会取代原来的字段.