1. package com.test;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import org.apache.commons.configuration.ConfigurationException;
  6. import org.apache.commons.configuration.PropertiesConfiguration;
  7. import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
  8. import org.apache.commons.lang.StringUtils;
  9. import org.apache.commons.lang.exception.*;
  10.  
  11. import org.apache.logging.log4j.Logger;
  12. import org.apache.logging.log4j.LogManager;
  13.  
  14. public class PropertyUtil {
  15.  
  16. private static final String DEFAULT_PROPERTY = "conf/conf";
  17. // private static final String DEFAULT_PROPERTY = "conf";
  18.  
  19. private static final String PROPERTY_SUFIX = ".properties";
  20.  
  21. private static final Map<String, PropertiesConfiguration> CONFIGURATIONS = new HashMap<String, PropertiesConfiguration>();
  22.  
  23. static private Logger logger = LogManager.getLogger(PropertyUtil.class);
  24.  
  25. private static PropertiesConfiguration getInstance(String name)
  26. {
  27. String fileName = getPropertyName(name);
  28. // logger.debug("filename=" + fileName);
  29. PropertiesConfiguration config = CONFIGURATIONS.get(fileName);
  30. if (config == null)
  31. {
  32. try
  33. {
  34. // logger.debug("congfig is null");
  35.  
  36. config = new PropertiesConfiguration(fileName);
  37. config.setReloadingStrategy(new FileChangedReloadingStrategy());
  38. CONFIGURATIONS.put(fileName, config);
  39. }
  40. catch (ConfigurationException e)
  41. {
  42. logger.error("cannot find property file for : " + name);
  43. throw new RuntimeException("cannot find property file for : " + name);
  44. }
  45. }
  46. return config;
  47. }
  48.  
  49. private static String getPropertyName(String name)
  50. {
  51. if (StringUtils.isBlank(name))
  52. {
  53. name = DEFAULT_PROPERTY;
  54. }
  55. return name.endsWith(PROPERTY_SUFIX) ? name : (name += PROPERTY_SUFIX);
  56. }
  57.  
  58. public static PropertiesConfiguration getInstance()
  59. {
  60. return getInstance(null);
  61. }
  62.  
  63. public static String getString(String key)
  64. {
  65. return getString(key, DEFAULT_PROPERTY);
  66. }
  67.  
  68. public static String getString(String key, String propertyInstance)
  69. {
  70. return getInstance(propertyInstance).getString(key);
  71. }
  72.  
  73. public static int getInt(String key)
  74. {
  75. return getInt(key, DEFAULT_PROPERTY);
  76. }
  77.  
  78. public static int getInt(String key, String propertyInstance)
  79. {
  80. String value = getInstance(propertyInstance).getString(key);
  81. return Integer.parseInt(value);
  82. }
  83. public static void main(String[] args)
  84. {
  85. PropertyUtil test = new PropertyUtil();
  86. System.out.print(test.getString("key"));
  87. }
  88.  
  89. }

java-读properties配置文件的更多相关文章

  1. java读取properties配置文件总结

    java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...

  2. 【转】Java 读写Properties配置文件

    [转]Java 读写Properties配置文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形 ...

  3. Java 读写Properties配置文件

    Java 读写Properties配置文件 JAVA操作properties文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了M ...

  4. Java读properties文件中文乱码问题的解决方法

    java读properties文件,包含中文字符的主要有两种: 1.key中包含中文字符的(value中也有可能包含) 2.key中不包含中文字符的(value中有可能包含) 1.key中包含中文字符 ...

  5. java读properties文件 乱码

    java读properties文件,包含中文字符的主要有两种: 1.key中包含中文字符的(value中也有可能包含) 2.key中不包含中文字符的(value中有可能包含) 1.key中包含中文字符 ...

  6. java读取properties配置文件信息

    一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...

  7. java读properties的通用类,兼容linux和windows

    package util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; / ...

  8. java读取properties配置文件的方法

    app.properties mail.smtp.host=smtp.163.com mail.transport.protocol=smtp import java.io.InputStream; ...

  9. Java 读Properties

    import java.io.*; import java.util.Properties; public class Study { public static void main(String[] ...

  10. Java 获取*.properties配置文件中的内容 ,常见的两种方法

    import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

随机推荐

  1. BZOJ 1877: [SDOI2009]晨跑 费用流

    1877: [SDOI2009]晨跑 Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一 ...

  2. 知问前端——创建header区

    创建界面 我们首先要设计一个header,这个区域将要设计成永远置顶.也就是,往下拉出滚动条也永远在页面最上层可视区内.在header区,目前先设计LOGO.搜索框.按钮.注册和登录即可. 项目的大致 ...

  3. 经典SQL查询语句大全

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  4. android-exploitme(四):参数篡改

    今天我们来测试请求中参数的篡改,这个在web安全测试中是常用的,拦截请求包,修改参数,提交 1.  首先我们需要启动模拟器,并使用本机的代理(加上参数-partition-size的目的是为了可以往a ...

  5. CentOS 7:如何安装防火墙?

    对于纯净版的CentOS 7,您必须手动安装防火墙.但是你就算安装了防火墙还是不能马上运行它,你需要再做一些操作才能让它工作. 在CentOS 7中按照以下步骤来设置防火墙 第一步,通过yum安装sy ...

  6. RHEL7全新初始化进程管理systemd(图形启动和非图形启动切换)

    红帽RHEL7系统已经替换了大家熟悉的初始化进程System V init,正式采用全新的 初始化进程systemd.初始化进程systemd使用了并发启动机制,所以开机速度上得到了不小的 提升. 将 ...

  7. 【python爬虫】根据查询词爬取网站返回结果

    最近在做语义方面的问题,需要反义词.就在网上找反义词大全之类的,但是大多不全,没有我想要的.然后就找相关的网站,发现了http://fanyici.xpcha.com/5f7x868lizu.html ...

  8. Eclipse中user library包管理

    1.整理jar 2.将整理出的jar包在Eclipse中分别设置为用户librarywindow -> preferences -> java -> build path -> ...

  9. centos 安装jdk

    不要使用yum 安装openjdk,他妈的就是一坑货 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-d ...

  10. Java 数据结构之ArrayList

    ArrayList:数组队列,就是动态数组,可以动态的增加和减少元素.实现了ICollection和IList接口.灵活的设置数组的大小 具体的用法: 1.创建:ArrayList list = ne ...