`

使用common-configuration读取xml,properties文件

    博客分类:
  • java
 
阅读更多

 

转帖出处:http://blog.csdn.net/pengchua/archive/2007/12/21/1957069.aspx

http://commons.apache.org/configuration/apidocs/index.html 
Commons Configuration provides a generic configuration interface which enables a Java application to

read configuration data from a variety of sources.

PropertiesConfiguration Loads configuration values from a properties file. 
XMLConfiguration Takes values from an XML document. 
INIConfiguration Loads the values from a .ini file as used by Windows. 
PropertyListConfiguration Loads values from an OpenStep .plist file. XMLPropertyListConfiguration is

also available to read the XML variant used by Mac OS X. 
JNDIConfiguration Using a key in the JNDI tree, can retrieve values as configuration properties. 
BaseConfiguration An in-memory method of populating a Configuration object. 
HierarchicalConfiguration An in-memory Configuration object that is able to deal with complex

structured data. 
SystemConfiguration A configuration using the system properties 
ConfigurationConverter Takes a java.util.Properties or an

org.apache.commons.collections.ExtendedProperties and converts it to a Configuration object.


1.读取XML文件中内容

 

  1. import java.util.List;  
  2. import org.apache.commons.configuration.Configuration;  
  3. import org.apache.commons.configuration.XMLConfiguration;  
  4. public class XmlConfigurationExample {  
  5.  public static void main(String[] args) throws Exception {  
  6.   String resource = "com/discursive/jccook/configuration/global.xml";  
  7.   Configuration config = new XMLConfiguration(resource);  
  8.   //只有new一个XMLConfiguration的实例就可以了.  
  9.   List startCriteria = config.getList("start-criteria.criteria");  
  10.   int horsepower = config.getInt("horsepower");  
  11.   System.out.println( "Start Criteria: " + startCriteria );  
  12.   System.out.println(horsepower);  
  13.  }  
  14. }  

 

global.xml:

 

  1. <?xml version="1.0" encoding="ISO-8859-1" ?>  
  2. <engine-config>  
  3.  <start-criteria>  
  4.   <criteria>  
  5.    Temperature Above -10 Celsius  
  6.   </criteria>  
  7.   <criteria>  
  8.    Fuel tank is not empty  
  9.   </criteria>  
  10.  </start-criteria>  
  11.  <volume>4 Liters</volume>  
  12.  <horsepower>42</horsepower>  
  13. </engine-config>  

 

2.读取properties文件

 

 

  1. import org.apache.commons.configuration.Configuration;  
  2. import org.apache.commons.configuration.PropertiesConfiguration;  
  3. public class PropertiesConfigurationExample {  
  4.  public static void main(String[] args) throws Exception  {  
  5.   Configuration config = new PropertiesConfiguration(   
  6. "com/discursive/jccook/configuration/global.properties" );  
  7.     
  8.   System.out.println( "Speed: " + config.getFloat("speed"));  
  9.   System.out.println( "Names: " + config.getString("name"));  
  10.   }  
  11. }  

 

global.properties:

 

 

  1. threads.maximum=50  
  2. threads.minimum=20  
  3. timeout=15.52  
  4. interactive=true  
  5. color=red  
  6. speed=50  
  7. name=Default User  
  8. email=default@email.com  
  9. region=Earth  

 

 

3.当有多个配置文件时,就利用ConfigurationFactory对象来访问多个不同的配置资源

ConfigurationFactory可以组合多个配置资源。然后我们就可以像访问单个资源文件一样来访问他们中的属性。首

先,我们需要创建一个xml文件来告诉工厂哪些文件将要被加载。下面是一个例:
 <?xml version="1.0" encoding="ISO-8859-1" ?> 
<configuration>
  <properties fileName="usergui.properties"/>
</configuration>
ConfigurationFactory的定义文件是一个普通的xml文件.根元素是configuration.他饱含的子元素制定了需要装载

的配置资源.properties是元素之一,他用来包含属性文件

 

 

  1. import java.net.URL;  
  2. import java.util.List;  
  3. import org.apache.commons.configuration.Configuration;  
  4. import org.apache.commons.configuration.ConfigurationFactory;  
  5. public class PropertiesXmlConfigurationExample {  
  6.  public static void main(String[] args) throws Exception {  
  7.   PropertiesXmlConfigurationExample example = new PropertiesXmlConfigurationExample();  
  8.   ConfigurationFactory factory = new ConfigurationFactory();  
  9.   URL configURL = example.getClass().getResource("additional-xml-configuration.xml");  
  10.   factory.setConfigurationURL( configURL );  
  11.     
  12.   Configuration config = factory.getConfiguration();  
  13.     
  14.   List startCriteria = config.getList("start-criteria.criteria");  
  15.   System.out.println( "Start Criteria: " + startCriteria );  
  16.     
  17.   int horsepower = config.getInt("horsepower");  
  18.   System.out.println( "Horsepower: " + horsepower );  
  19.  }  
  20. }  

 

 

additional-xml-configuration.xml:

 

 

  1. <?xml version="1.0" encoding="ISO-8859-1" ?>  
  2. <configuration>  
  3.   <properties fileName="global.properties"/>  
  4.   <xml fileName="global.xml"/>  
  5. </configuration>  
  6.    

 


或者采用另外一种方法:  用到了:CompositeConfiguration,手动加上两个配置文件

  1. import org.apache.commons.configuration.CompositeConfiguration;  
  2. import org.apache.commons.configuration.ConfigurationException;  
  3. import org.apache.commons.configuration.PropertiesConfiguration;  
  4. import org.apache.commons.configuration.XMLConfiguration;  
  5. public class Test {  
  6.  /** 
  7.   * @param args 
  8.   * @throws ConfigurationException  
  9.   */  
  10.  public static void main(String[] args) throws ConfigurationException {  
  11.   // TODO Auto-generated method stub  
  12.   CompositeConfiguration config = new CompositeConfiguration();  
  13.   config.addConfiguration(new PropertiesConfiguration(   
  14. "com/discursive/jccook/configuration/global.properties" ));  
  15.   config.addConfiguration( new XMLConfiguration  
  16. ("com/discursive/jccook/configuration/global.xml"));  
  17.   List startCriteria = config.getList("start-criteria.criteria");  
  18.   int horsepower = config.getInt("horsepower");  
  19.   System.out.println( "Start Criteria: " + startCriteria );  
  20.   System.out.println(horsepower);  
  21.     
  22.   System.out.println( "Speed: " + config.getFloat("speed"));  
  23.   System.out.println( "Names: " + config.getString("name"));  
  24.  }  
  25. }  

 

 

分享到:
评论

相关推荐

    Common-Configuration

    综合以上信息,"Common-Configuration"可能是一个跨平台的、易于集成的配置管理工具,它提供了读取XML和properties文件的接口,方便开发者在项目中灵活配置和管理应用程序的行为。通过学习这个例子,我们可以掌握...

    官方commons-configuration-1.10的jar包

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

    common-configuration的一些应用

    总的来说,“common-configuration”的应用涉及了多种类型的配置文件,包括ini、properties、XML等。这些文件在软件开发中扮演着重要角色,它们使开发者能够灵活地调整系统行为,实现特定功能,如日志记录、数据库...

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

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

    java读取配置文件

    最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io.FileInputStream`可以用来打开文件,然后`java.util.Properties`类可以加载并解析配置文件。以下是一个简单的示例: ...

    初始化数据库链接信息

    1. 加载配置:使用`common-configuration`读取数据库连接信息,如从`application.properties`或`database.xml`文件中获取。 2. 创建数据源(DataSource):基于加载的配置,创建`javax.sql.DataSource`对象,这是...

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

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

    ETL+hadoop采集

    1. **修改ETL加载的大数据平台版本**:在`SDCETLDesigner\common\plugins\pentaho-big-data-plugin\plugin.properties`文件中,将`active.hadoop.configuration`的值修改为`hdp23`,这表示当前ETL软件将使用Hadoop ...

    commonconfigruationdemo

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

    ReadConfigFile.rar

    - 在Python中,可以使用`configparser`模块读取`.ini`文件,或者使用`PyYAML`库处理`.yaml`文件。 - 在Java中,`java.util.Properties`类可以处理`.properties`文件,而`org.yaml.snakeyaml`库则适用于`.yaml`文件...

    Mybatis源码分析.md

    InputStream inputStream = CommonTest.class.getClassLoader().getResourceAsStream("mybatis-configuration.xml"); ``` 这里通过Java类加载器获取到名为`mybatis-configuration.xml`的配置文件,并将其内容转换...

    ibatis-sqlMap

    通过使用XML配置文件定义数据映射规则,DataMapper能够自动处理SQL语句与Java对象之间的转换,从而极大地提高了开发效率。 #### 安装 DataMapper的安装非常简单,主要步骤包括下载最新版本的DataMapper库文件,并...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...

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

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

    apache commons api

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

    BiliBili-基于ijkplayer rxjava retrofit,组件化思想,实现一个仿B站的Android客户端.zip

    所以要为组件开发模式下的业务组件再创建一个 AndroidManifest.xml,然后根据isModule指定AndroidManifest.xml的文件路径,让业务组件在集成模式和组件模式下使用不同的AndroidManifest.xml:sourceSets { ...

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

    下面是一个完整的 Maven 配置文件: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-parent &lt;version&gt;1.5.4.RELEASE &lt;properties&gt; &lt;java.version&gt;1.8 &lt;spring-kafka.version&gt;...

    ZendFramework中文文档

    9.4.3. Basic Zend_Date Operations Common to Many Date Parts 9.4.3.1. List of Date Parts 9.4.3.2. List of Date Operations 9.4.4. Comparing Dates 9.4.5. Getting Dates and Date Parts 9.4.6. Working ...

Global site tag (gtag.js) - Google Analytics