分享

Apache Commons-configuration 学习笔记

 昵称21365845 2015-07-14
Apache Commons-configuration 学习笔记 
1 如果要使用configuration这个包,首先要保证使用JDK1.2以上,还要引入如下jar包 
  • commons-beanutils
  • commons-lang
  • commons-logging
  • commons-collections
  • commons-digester
  • commons-codec
  • commons-jxpath

2 commons-configuration最新的版本是1.5,最主要的作用是读取资源文件,每一种文件格式都有一个对应的类,如下 
  • properties文件--PropertiesConfiguration类
  • xml文件--XMLConfiguration
  • .ini文件--INIConfiguration
  • .plist文件--PropertyListConfiguration
  • 还可以从JNDI中读取properties--JNDIConfiguration
  • 当然还可以使用system的properties--SystemConfiguration
  • 等等...

3 上面已经对它做了基本的介绍,下面看看这个包怎么用吧 
比如我们要读一个properties文件:在classpath下面建立目录te,之后在te下面建立 
test.properties 
Java代码  收藏代码
  1. ip=127.0.0.1  
  2. port=8080  
  3. id=111  
  4. application.name = Killer App  
  5. application.version = 1.6.2  
  6. application.title = ${application.name} ${application.version}  
  7. keys=cn,com,org,uk,edu,jp,hk  

java: 
Java代码  收藏代码
  1. //注意路径默认指向的是classpath的根目录  
  2. Configuration config = new PropertiesConfiguration("te/test.properties");  
  3. String ip=config.getString("ip");  
  4. int port=config.getInt("port");  
  5. String title=config.getString("application.title");  
  6. //再举个Configuration的比较实用的方法吧,在读取配置文件的时候有可能这个键值对应的值为空,那么在下面这个方法中  
  7. //你就可以为它设置默认值。比如下面这个例子就会在test.properties这个文件中找id的值,如果找不到就会给id设置值为123  
  8. //这样就保证了java的包装类不会返回空值。虽然功能很简单,但是很方便很实用。  
  9. Integer id=config.getInteger("id"new Integer(123));  
  10. //如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk  
  11. //可以实用下面的方式读取:  
  12. String[] keys1=config.getStringArray("keys");  
  13.     List keys2=config.getList("keys");  
首先要把这个文件读到程序中,我们可以用上面的类,所有的读取文件的类都 继承自AbstractConfiguration类, 
而这个类实现了Configuration接口,如果我们只有比较简单的需求,那么可以直接向上转型为Configuration类型,如果向上 
转型为AbstractConfiguration类,那么可以做一些配置工作。 
比如刚刚看到的 keys=cn,com,org,uk,edu,jp,hk这个例子中如果是keys=cn/com/org/uk/edu/jp/hk 
那么如果还按照原来的方式读取,读到的将是"cn/com/org/uk/edu/jp/hk"这个字符串,所以要先改变分割符之后在读 
即 
Java代码  收藏代码
  1. AbstractConfiguration.setDefaultListDelimiter('/');  
  2. Configuration config = new PropertiesConfiguration("te/Vasp.properties");  
  3. String[] keys=config.getStringArray("keys");  
  4. List key2=config.getList("keys");  
如果你看它的源码,你会在 AbstractConfiguration这个类中找到: 
Java代码  收藏代码
  1. private static char defaultListDelimiter = ',';  
这下你明白了吧!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多