`

使用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. }  

 

 

分享到:
评论

相关推荐

    Configuration对properties、xml配置文件的【增删改查】及动态加载

    1. **读取XML配置文件** XML配置文件的处理使用`XMLConfiguration`类。同样,通过指定文件路径,可以创建配置实例并获取配置信息。 2. **写入XML配置文件** 添加、修改XML配置使用`setProperty()`方法,删除则使用`...

    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读取配置文件

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

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

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

    初始化数据库链接信息

    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`文件...

    搭建MR开发环境

    - 将服务器上的`hdfs-site.xml`、`core-site.xml`、`mapred-site.xml`、`yarn-site.xml`等配置文件复制到项目的`bin`目录,并将`log4j.properties`配置文件放到项目的`src`和`bin`目录下。 ##### 10. 修改Hadoop...

    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;...

Global site tag (gtag.js) - Google Analytics