properties文件是Java平台默认的配置文件格式,其优点是格式清晰,简单易懂,使用commons-configuration读取properties文件也比较简单,代码如下:

基本用法:

1.加载jar包,我使用maven自动加载,pom.xml配置如下:

  1. <dependency>
  2. <groupId>commons-configuration</groupId>
  3. <artifactId>commons-configuration</artifactId>
  4. <version>1.9</version>
  5. </dependency>
  6. <!-- commons-configuration 自动加载的是2.1的版本,编译时会报错,所以再加上这个 -->
  7. <dependency>
  8. <groupId>commons-lang</groupId>
  9. <artifactId>commons-lang</artifactId>
  10. <version>2.6</version>
  11. </dependency>

common-lang这个包要用新版的,如果不写这个依赖,commons-configuration会下载一个2.1旧版,导致编译出错

2.java代码:

  1. PropertiesConfiguration config = new PropertiesConfiguration(“/database.properties”);
  2. String userName = config.getString("name");

除了getString()方法外,还有getBoolean,getDouble,getInteger等不同返回类型的方法可以调用。

进阶用法:

一个项目有会有多个配置文件,这时有个统一的配置文件管理类就很有必要了,我写了一个简单的,大家可以参考下,有不妥的用法也请指出来

1.java类

  1. package com.xxx.xxx.util;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import org.apache.commons.configuration.ConfigurationException;
  5. import org.apache.commons.configuration.PropertiesConfiguration;
  6. /**
  7. * <p>
  8. * 读取配置文件类
  9. * </p>
  10. * <p>
  11. * 根据配置文件名和属性key返回属性内容,configUtil.get(configFile, property);
  12. * </p>
  13. * @author shengzhi.rensz
  14. *
  15. */
  16. public class configUtil {
  17. private static configUtil initor = new configUtil();
  18. private static Map<String, Object> configMap = new HashMap<String, Object>();
  19. private configUtil() {}
  20. /**
  21. * 获取内容
  22. * @param configFile
  23. * @param property
  24. * @return
  25. */
  26. public static String get(String configFile, String property) {
  27. if(!configMap.containsKey(configFile)) {
  28. initor.initConfig(configFile);
  29. }
  30. PropertiesConfiguration config = (PropertiesConfiguration) configMap.get(configFile);
  31. String value = config.getString(property);
  32. //TODO LOG
  33. return value;
  34. }
  35. /**
  36. * 载入配置文件,初始化后加入map
  37. * @param configFile
  38. */
  39. private synchronized void initConfig(String configFile) {
  40. try {
  41. PropertiesConfiguration config = new PropertiesConfiguration(configFile);
  42. configMap.put(configFile, config);
  43. } catch (ConfigurationException e) {
  44. e.printStackTrace();
  45. }
  46. }
  47. }

2.调用方法

    1. configUtil.get("/common/velocity.properties", "input.encoding");
  1. public static void readProperties() throws ConfigurationException {
  2. PropertiesConfiguration pcfg = new PropertiesConfiguration("config/cfg.properties");
  3. System.out.println(pcfg.getString("platform.jre"));
  4. }

注意,这里的路径一定要搞清楚,配置文件是放在config文件夹中的;

关于JAVA 中的Configuration类的更多相关文章

  1. 带有静态方法的类(java中的math类)

    带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...

  2. java中的File类

    File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...

  3. Java基础(43):Java中的Object类与其方法(转)

    Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...

  4. java中基于TaskEngine类封装实现定时任务

    主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...

  5. Java中的Unsafe类111

    1.Unsafe类介绍 Unsafe类是在sun.misc包下,不属于Java标准.但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty.Hadoo ...

  6. Java中遍历实体类(处理MongoDB)

    在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...

  7. java中遍历实体类,获取属性名和属性值

    方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for ...

  8. Java中的BigDecimal类精度问题

    bigdecimal 能保证精度的原理是:BigDecimal的解决方案就是,不使用二进制,而是使用十进制(BigInteger)+小数点位置(scale)来表示小数,就是把所有的小数变成整数,记录小 ...

  9. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

随机推荐

  1. springMVC3学习--ModelAndView对象(转)

    原文链接:springMVC3学习(二)--ModelAndView对象 当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherS ...

  2. DNS java

    https://www.cnblogs.com/549294286/p/5307316.html https://www.cnblogs.com/crazyacking/p/5672032.html

  3. 解决/bin/sh: 1: syntax error: "(" unexpected错误,以及更换bash仍然无法解决的问题

    编译文件的时候出现 /bin/sh: 1: syntax error: "(" unexpected 错误. 网上查到的资料都是: (1)在脚本前写#!/bin/bash (2)执 ...

  4. MySQL安装详细图解整理

    MySQL安装详细图解 2018-08-19  08:32:33 一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win64.zip,双击解压缩,运行“setup.ex ...

  5. 《Android进阶之光》--多线程编程

    No1: 实现多线程的3中方法 1)继承Thread,重写run()方法 2)实现Runnable接口,并实现该接口的run()方法 3)实现Callable接口,重写call()方法 public ...

  6. 【知了堂学习笔记】java 自定义异常

    java 常见异常种类(Java Exception): 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCas ...

  7. 003.Kickstart部署之HTTP架构

    一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PXE 1.2 组件应用 Kickstart服务端IP:172.24.8.12 DHCP:提供客户端IP,网关,镜像路径等 ...

  8. Android 打造自己的ImageLoader

    Android 打造自己的ImageLoader 学习和参考 Android开发艺术探索 https://blog.csdn.net/column/details/15318.html 郭霖大神的Gl ...

  9. python魔法方法-属性访问控制

    属性访问控制 所谓的属性访问控制就是控制点号访问属性的行为,而且不仅是类的外部,连类的内部也受控制,代码见真章,边看代码边解释: __getattr__(self, item) 定义当访问不存在的属性 ...

  10. u3d 地形 U3d terrain

    u3d 地形 U3d terrain 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com fbx ...