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. C/S权限系统得到拼音和五笔的自定义函数(二)

    得到五笔: CREATE FUNCTION [dbo].[fun_getWB](@Str VARCHAR(2000)) RETURNS VARCHAR(2000) AS BEGIN DECLARE @ ...

  2. MVC4 下DropDownList使用方法(转)

    与MVC3相比,差别很大: 表现形式一: public ActionResult Main() { List<SelectListItem> items = new List<Sel ...

  3. ***LANMP镜像手册(Apache&Nginx)-lanmp-oneinstack

    LANMP镜像手册(Apache&Nginx) Version PHP7.0.26  转自:http://docs.websoft9.com/xdocs/lanmp-oneinstack-im ...

  4. ElasticSearch - match vs term

    match vs term 这个问题来自stackoverflow https://stackoverflow.com/questions/23150670/elasticsearch-match-v ...

  5. CSP 地铁修建 Kruskal (最小生成树+并查集)

    问题描述 A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁. 地铁由很多段隧道组成,每段隧道连接两个交通枢纽.经过勘探,有m段隧道作为候选,两个交通 ...

  6. 点分治 poj1741

    题意: 给出一颗树,询问有多少对点对距离<=k 链接: http://poj.org/problem?id=1741 题解: 点分治的模板题 点分治即采用分治思想分而治之 考虑一颗子树内距离&l ...

  7. day16--HTML、CSS、JavaScript总结

        HTML 一大堆的标签:块级.行内 CSS position background text-align padding font-size background-image z-index ...

  8. BZOJ5047 空间传送装置 2017年9月月赛 最短路 SPFA

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5047 题意概括 概括??~别为难语文做一题错两题的我了…… 题解 我们发现,对于某一种装置,有c种 ...

  9. Immediate Decodability HDU1305

    类似phonelist  一次ac 判断失败主要有两个要点 1. 是否包含了某段的结尾结点   说明某段被此段包含 2.此段的结尾结点是否为某段的痕迹   说明此段被包含 #include<bi ...

  10. asp.net core for vs code

    1,命令 2,模板 3,更换启动浏览器 4,vscode使用nuget 5,使用ef migration 6,配置.net core的工作目录 7,使用dotnet ef migrations命令 8 ...