Apache commons-configuration setDelimiterParsingDisable不生效的处理

项目中有用到commons-configuration,版本1.9。

配置初始化大概这样:

CombinedConfiguration config = new CombinedConfiguration();
PropertiesConfiguration propConfig = new PropertiesConfiguration("filename...");
config.append(propConfig);
....
String value = config.getString("test.key");

在属性配置文件(×.properties)中,如下设置:

test.key=value1,value2

经调用发现value的值为"value1",通过查看源码发现,在PropertiesConfiguration中有个delimiterParsingDisable属性,它来判禁是否用自动解析List的标志,默认是解析的。当getString的时候,会取list的第一个元素。所以可以解释了为什么只获取到了value1。知道为什么了,解决办法就有了,只要将delimiterParsingDisable这个属性设置为true就不会出现这种问题了。于是有了下面的代码:

CombinedConfiguration config = new CombinedConfiguration();
PropertiesConfiguration propConfig = new PropertiesConfiguration("filename...");
propConfig.setDelimiterParsingDisable(true);
config.append(propConfig);

再次测试,发现依然不起作用,于是debug代码,发现当调用这一步的时候new PropertiesConfiguration("filename...");内部已经完成了加载,也就是说,再设置这个值是没有意义的。于是有了最终的解决办法,就是在加载数据之前,将delimiterParsingDisable这个属性设置为true。最终代码如下:

private static class PropertiesConfigurationWrapper extends PropertiesConfiguration {
public PropertiesConfigurationWrapper(String fileName) throws ConfigurationException {
super();
super.setDelimiterParsingDisabled(true); // 设置不解析list
super.setFileName(fileName);
super.load(); // 此处为加载数据的地方 }
}

Apache commons-configuration setDelimiterParsingDisable不生效的处理的更多相关文章

  1. 使用Apache Commons Configuration读取配置信息

    在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架——Apache Commons Configuration framework. 你会了 ...

  2. Apache Commons Configuration读取xml配置

    近期项目自己手写一个字符串连接池.因为环境不同有开发版本.测试版本.上线版本.每一个版本用到的数据库也是不一样的.所以需要能灵活的切换数据库连接.当然这个用maven就解决了.Apache Commo ...

  3. Apache Commons Configuration的应用

    Apache Commons Configuration的应用 Commons Configuration是一个java应用程序的配置管理工具.可以从properties或者xml文件中加载软件的配置 ...

  4. Apache Commons configuration使用入门

    使用Commons  Configuration可以很好的管理我们的配置文件的读写, 官网:http://commons.apache.org/configuration 需要用到commons-la ...

  5. commons configuration管理项目的配置文件

    Commons Confifutation commons configuration可以很方便的访问配置文件和xml文件中的的内容.Commons Configuration 是为了提供对属性文件. ...

  6. Apache Commons 常用工具类整理

    其实一直都在使用常用工具类,只是从没去整理过,今天空了把一些常用的整理一下吧 怎么使用的一看就明白,另外还有注释,最后的使用pom引入的jar包 public class ApacheCommonsT ...

  7. Commons Configuration之二基本特性和AbstractConfiguration

    Configuration接口定义一大堆方法.一切从头开始实现这些方法非常困难.因为AbstractConfiguration类存在.该类在Commons Configuration中充当大多数Con ...

  8. Apache Commons Digester 一 (基础内容、核心API)

    前言 在许多需要处理XML格式数据的应用环境中, 如果能够以“事件驱动”的方式来处理XML文档,比如,当识别出特定的XML元素时,触发“创建对象”操作事件(或者触发调用对象的方法事件),这对于应用程序 ...

  9. Apache Commons CLI命令行启动

    今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式--比如可以从命令行启动,也可以从web端启动.今天就看看如何设计命令行启动... Apache Commons CLI Apac ...

随机推荐

  1. hibernate三种状态

    转自:http://www.cnblogs.com/xiaoluo501395377/p/3380270.html 学过hibernate的人都可能都知道hibernate有三种状态,transien ...

  2. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

  3. JsonResult作为Action返回值时的错误

    JsonResult作为Action返回值时的错误   System.InvalidOperationException: This request has been blocked because ...

  4. GO语言总结(3)——数组和切片

    上篇博文简单介绍了一下Go语言的基本类型——GO语言总结(2)——基本类型,本篇博文开始介绍Go语言的数组和切片. 一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. ( ...

  5. 像画笔一样慢慢画出Path的三种方法(补充第四种)

    今天大家在群里大家非常热闹的讨论像画笔一样慢慢画出Path的这种效果该如何实现. 北京-LGL 博客号@ligl007发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...

  6. ASP.NET - Web API,从简单类型到复杂类型的参数传递用例,以及传递简单string类型的解决办法

    一,简单类型的传值 比如 public Users Get(int id) ,它可以使用两种方式获取: api/default/ $.get("/api/default",{id: ...

  7. DDNS动态更新

    /// <summary> /// DnsPod DDNS工具类 /// </summary> public class DDNSToolkit { private stati ...

  8. mysql命令

    create 创建数据库 show databases 显示所有数据库 drop database 删除数据库 use 使用(进入)数据库 select 当前使用的数据库 create table 创 ...

  9. destoon : 后台无法登录问题解决

    经常有朋友在destoon搬家的时候 , 数据还原之后 , 会出现后台无法登录的情况 . 具体表现为后台帐号密码输入后点击确定 , 页面刷新 .并没有跳转到相应后台页面 . 但是如果帐号密码输入错误 ...

  10. 14 Iterator和for...of循环

    Iterator和for...of循环 首先 Iterator 是一个接口. 标准是 function makeIterator(array) { var nextIndex = 0; return ...