`
JavaCrazyer
  • 浏览: 3009002 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

Apache Common-Configuration的使用,重点介绍对XML和Properties的读取操作

阅读更多

Apache Common-Configuration工具可以从
Properties文件,XML文件,JNDI,JDBC数据源,System Properties,Applet parameters,Servlet Parameters等读取相应信息

使用步骤

前提,引入commons-configuration-1.6.jar这个JAR包,同时还必须映入commm-logging.jar,common-lang.jar和common-collection.jar



 

关于对XML的操作代码

	public static void testReadXML(){
		try {
			
			XMLConfiguration	config = new XMLConfiguration("config.xml");
			//对于单独元素的话,可以直接通过标签名获取值
			String str=config.getString("boy");
			System.out.println(str);
			//对于循环出现的嵌套元素,可以通过父元素.子元素来获取集合值
			List<String> names=config.getList("student.name");
			System.out.println(Arrays.toString(names.toArray()));
			//对于一个单独元素包含的值有多个的话如:a,b,c,d 可以通过获取集合
			List<String> titles=config.getList("title");
			System.out.println(Arrays.toString(titles.toArray()));
			//对于标签元素的属性,可以通过 标签名[@属性名] 这样的方式获取
			String size=config.getString("ball[@size]");
			System.out.println(size);
			//对于嵌套的标签的话,想获得某一项的话可以通过 标签名(索引名) 这样方式获取
			String id=config.getString("student(1)[@id]");
			System.out.println(id);
			
			String go=config.getString("student.name(0)[@go]");
			System.out.println(go);
			/**
			 * 依次输出结果为
			 * tom
             * [lily, lucy]
             * [abc, cbc, bbc, bbs]
             * 20
             * 2
             * common1
			 * 
			 */
		} catch (ConfigurationException e) {
			e.printStackTrace();
		}
	}

   config.xml

   

<Students>
<boy>tom</boy>
<student id="1">
<name go="common1">lily</name>
<age>20</age>
</student>
<student id="2">
<name go="common2">lucy</name>
<age>30</age>
</student>
<title>abc,cbc,bbc,bbs</title>
<ball size="20">pingpang</ball>
</Students>

 

 

关于Properties的操作代码

public static void testReadProperties(){
		//注意路径默认指向的是classpath的根目录   
		Configuration config;
		try {
			config = new PropertiesConfiguration("config.properties");
			String ip=config.getString("ip");   
			int port=config.getInt("port");   
			String title=config.getString("application.title");   
			System.out.println(ip+"\n"+port+"\n"+title);   
			//再举个Configuration的比较实用的方法吧,在读取配置文件的时候有可能这个键值对应的值为空,那么在下面这个方法中   
			//你就可以为它设置默认值。比如下面这个例子就会在config.properties这个文件中找id的值,如果文件中没有配置id,就会给id设置值为123   
			//这样就保证了java的包装类不会返回空值。虽然功能很简单,但是很方便很实用。   
			String id=config.getString("id", "defaultid"); 
			System.out.println(id);
			
			//如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk,这样的类似一个值含有多个元素值   
            //那么下面两种方法都可以
			String[] keys1=config.getStringArray("keys"); 
			System.out.println(Arrays.toString(keys1));
			List keys2=config.getList("keys");  
			System.out.println(Arrays.toString(keys2.toArray()));
			//接下来这两步加上的原因是,默认分割符号是逗号,而在配置文件中con的值中含有多个短横线分隔符,所以要重新设置分隔符读出来喽
			AbstractConfiguration.setDefaultListDelimiter('-');
			config = new PropertiesConfiguration("config.properties");
			List cons=config.getList("con");  
			System.out.println(Arrays.toString(cons.toArray()));
			/**
			 * 
			 *  依次输出结果如下
			 *  127.0.0.1
             *  8080
             *  Killer App 1.6.2
             *  defaultid
             *  [cn, com, org, uk, edu, jp, hk]
             *  [cn, com, org, uk, edu, jp, hk]
             *  [cn, com, org, uk, edu, jp, hk]
			 */
		} catch (ConfigurationException e) {
			e.printStackTrace();
		}   
		
	}

 config.properties

ip=127.0.0.1  
port=8080  
sd=111
application.name = Killer App   
application.version = 1.6.2  
application.title = ${application.name} ${application.version}   
keys=cn,com,org,uk,edu,jp,hk
con=cn-com-org-uk-edu-jp-hk  

 有了这样的工具类,以后操作XML和properties文件都很方便了

  • 大小: 5.9 KB
3
0
分享到:
评论

相关推荐

    官方commons-configuration-1.10的jar包

    8. **XML配置的解析**:对于XML配置文件,Commons Configuration 使用DOM解析器来读取数据,支持XPath表达式,可以方便地定位和操作XML文档中的元素。 9. **安全处理**:考虑到配置信息可能包含敏感数据,如密码,...

    common-configuration的一些应用

    本文将围绕“common-configuration”的一些应用展开,探讨如何使用和理解这些常见的配置文件格式,以及它们在实际开发中的作用。 首先,`config.ini`是一种基于文本的配置文件,通常用于存储应用程序的设置。它采用...

    Java实现的properties文件动态修改并自动保存工具类

    Apache Common-Configuration是一个功能强大的配置文件处理工具,可以从 Properties文件、XML文件、JNDI、JDBC数据源、System Properties、Applet parameters、Servlet Parameters等读取相应信息。通过使用commons-...

    commonconfigruationdemo

    Apache Commons Configuration库允许开发者轻松地从不同类型的配置文件(如XML、INI、Properties或系统属性)中读取和写入配置参数。这个库的核心概念是`Configuration`接口,它定义了获取和设置配置项的方法。以下...

    java读取配置文件

    Apache Commons Configuration库提供了一种更强大且灵活的方式来处理配置文件,支持.properties、XML、ini等多种格式: ```java Configuration config = new PropertiesConfiguration("config.properties"); ...

    apache commons api

    6. **Configurations**: Apache Commons Configuration 专注于处理配置文件,支持多种格式如XML、Properties、INI等。它提供了动态更新配置的能力,使得程序在运行时可以轻松响应配置变化。 7. **Net**: Apache ...

    关于读取Src下配置文件的那个传说

    这些文件可能是JSON、XML、YAML或纯文本格式,根据语言和框架的不同,读取方式也会有所差异。 1. **Java**:在Java中,如果使用Maven或Gradle构建工具,配置文件会被自动复制到类路径下的`resources`目录。使用`...

    java工程师-移动计费系统-面试题系列(与“套餐”有关文档共31张).pptx

    - **数据读取**:Java工程师需要熟悉如何在程序中读取和解析配置文件,例如使用`Properties`类或第三方库如`Apache Commons Configuration`。 - **条件判断**:理解并实现复杂的业务逻辑,比如根据用户状态(新...

    在springboot中对kafka进行读写的示例代码

    使用 Spring Boot 操作 Kafka 需要创建一个 Kafka 模板,然后使用该模板来发送和接收消息。下面是一个示例代码: ```java package com.dhb.kafka; import org.springframework.beans.factory.annotation.Autowired...

Global site tag (gtag.js) - Google Analytics