Java加载Properties配置文件工具类

import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties; /**
* Created by yang on 2017/1/5.
* 静态配置
*/
public class Constants { private static Logger logger = Logger.getLogger(Constants.class);
private static Map<String, String> configMap = null; static {
Properties pt = new Properties();
InputStream ist = null;
try {
ist = Constants.class.getClassLoader().getResourceAsStream("datasource-config.properties");
pt.load(ist);
configMap = new HashMap<String, String>(pt.keySet().size());
logger.info("Constants list:");
for (Object keyObj : pt.keySet()) {
String key = keyObj.toString();
Object objs = pt.get(key);
logger.info(key + ":" + objs);
configMap.put(key.trim(), objs.toString());
}
} catch (Exception e) {
logger.error(e.getCause());
} finally {
try {
if (null != ist) {
ist.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
} private static String getSimpleValue(String key, String defaultValue) {
String value = configMap.get(key);
if (value == null || value.trim().length() == 0) {
value = defaultValue;
}
assert StringUtils.isNotBlank(value);
return value;
} private static String getSimpleValue(String key) {
return configMap.get(key).toString();
} public static String getEsTopicHost() {
return getSimpleValue("dataSource.es.topic.host");
} public static String getEsUserLogHost() {
return getSimpleValue("dataSource.es.userlog.host");
} public static int getShardedPoolMaxTotal() {
return Integer.valueOf(getSimpleValue("redis.shardedpool.maxtotal", "20")).intValue();
} public static long getShardedPoolMaxWaitMillis() {
return Long.valueOf(getSimpleValue("redis.shardedpool.maxwaitmillis", "1000")).longValue();
} //redis
public static String getRedisHost() {
return getSimpleValue("redis.host");
} public static String getRedisPort() {
return getSimpleValue("redis.port", "6379");
} }

最新文章

  1. C++ 系列:编译 boost
  2. java基础之集合框架
  3. 三种方法实现js跨域访问
  4. ARM各种版本号知识以及型号的发展(三星为例)
  5. 使用Nlog记录日志到数据库
  6. Linux之文件系统的简单操作
  7. iOS开发 中的代理实现
  8. 1964-NP
  9. linux删除或隐藏命令历史记录history
  10. .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法
  11. LAMP编译安装遇到的问题
  12. H5入门——HTML部分
  13. java.lang.NoClassDefFoundError: javax/servlet/AsyncListener解决方案
  14. 关于时间戳截取的隐藏bug
  15. RestfulAPI超简单入门
  16. web前端html快速入门
  17. pta 习题集5-18 打印学生选课清单
  18. 【Oracle】DBMS_STATS.GATHER_SCHEMA_STATS详解
  19. BZOJ 4945 NOI2017 游戏 搜索+2-SAT
  20. [BZOJ3195][Jxoi2012]奇怪的道路

热门文章

  1. vue tradingView(二)
  2. 3.创建应用服务(Application Services)
  3. c++ 中pair类模板的用法详解
  4. POJ3648 Wedding 【2-sat】
  5. 如何在Ionic2项目中使用第三方JavaScript库
  6. MFC设置对话框背景和边框颜色
  7. 【BZOJ4504&amp;&amp;Hihocoder1046】K个串(主席树,堆)
  8. BZOJ 3876 支线剧情
  9. js5:框架的使用,使框架之间无痕连接
  10. Nhibernate基本的增删改查实践