`

Configuration类使用

XML 
阅读更多

传统通过读取资源文件方式:

1、Properties

Properties  pro = new Properties ();

加载资源文件分如下几种:

(1)、pro.load(new FileInputStream("config.properties"));读取当前目录的config.properties文件

(2)、props.load(getClass.getResourceAsStream("config.properties")); 读取当前类所在位置一起的config.properties文件
(3)、props.load(getClass.getResourceAsStream("/config.properties")); 读取ClassPath的根的config.properties文件,注意ClassPath如果是多个路径或者jar文件的,只要在任意一个路径目录下或者jar文件里的根下都可以,如果存在于多个路径下的话,按照ClassPath中的先后顺序,使用先找到的,其余忽略

备注:加载XML方式类似,只是调用loadFromXML(in);

 

获取属性值的方式:

 String getProperty(String key)
          用指定的键在此属性列表中搜索属性。
 String getProperty(String key, String defaultValue)
          用指定的键在属性列表中搜索属性。

 

2、ResourceBundle

加载资源文件的方式

(1)ResourceBundle bundle = ResourceBundle.getBundle("config");
(2)ResourceBundle res = ResourceBundle.getBundle("config.properties");

 

获取属性值的方式:

abstract  Enumeration<String> getKeys()
          返回键的枚举。
 Object getObject(String key)
          从此资源包或它的某个父包中获取给定值的对象。
 String getString(String key)
          从此资源包或它的某个父包中获取给定值的字符串。
 String[] getStringArray(String key)
          从此资源包或它的某个父包中获取给定值的字符串数组。

使用commons-configuration.jar 中的Configuration读取资源文件

1、Properties

 

 比如,有如下的配置信息:


speed=23.332
names=Bob,Gautam,Jarret,Stefan
correct=false



可以像这样来访问他们:


Configuration config = new PropertiesConfiguration(getClass()
    .getResource("/resources/config.properties"));

float speed = config.getFloat("speed");
List names = config.getList("names");
boolean correct = config.getBoolean("correct");



传递给PropertiesConfiguration构建函数的参数可以是文件名、可以访问到文件的URL、以及文件本身(File对象)。当然,Properties类也可以完成同样的事情,但只支持返回String类型的值。

2、XML

希望使用XML格式的配置文件来配置应用程序。
解决方案:


Configuration config = new XMLConfiguration("resources/config.xml");
List criterias = config.getList("start-criteria.criteria");
String criteria = config.getString("start-criteria.criteria(0)");
String type = config.getString("start-criteria.criteria(0)[@type]");//自己替换[]
int horsepower = config.getInt("horsepower");


使用XMLConfiguration类可以加载并访问XML格式的配置文件,访问配置信息使用的是XPath格式 (XPath请参数相应的XML文档)。
传递给XMLConfiguration构建函数的参数可以是文件名、可以访问到文件的URL、以及文件本身(File对象)。

3、组合配置

有时候应用程序使用一种多层结构的配置方式,即上一层的配置可以被下一层选择性地覆盖
解决方案:
configuration.xml


<?xml version="1.0" encoding="ISO-8859-1" ?>
<configuration>
 <properties fileName="user.properties" />
 <properties fileName="local.properties" />
 <properties fileName="global.properties" />
</configuration>


global.properties

threads.max=50
threads.min=2
timeout=15.52
interactive=true
color=red
speed=50
name=Default User


local.properties

# Overrides Global Props
threads.max=30
speed=55


user.properties

# Overrides Local Props
threads.min=1
color=black
speed=5000
name=Sean



ConfigurationFactory factory = new ConfigurationFactory();
factory.setConfigurationURL(CfgTest3.class.getResource("/resources/configuration.xml"));
Configuration config = factory.getConfiguration();

// print out properties
System.out.println("Timeout: " + config.getFloat("timeout"));
System.out.println("Max Threads: " + config.getString("threads.max"));
System.out.println("Name: " + config.getString("name"));
System.out.println("Speed: " + config.getInt("speed"));


创建一个声明多个properties配置的configuration.xml文件,并传递给ConfigurationFactory,ConfigurationFactory解析这些properties配置,生成一个包含最终配置信息的Configuration实例,通过这个实例访问到的配置信息,就是被覆盖过的最终版本。
上面实例中的configuration.xml文件由多个<properties/>元素组成,覆盖的顺序由上往下,也就是说user.properties会覆盖local.properties,local.properties会覆盖global.properties。
其他:
configuration.xml文件可以使用如下的元素来声明配置文件:
•<properties/> 用于声明properties格式的配置文件
•<xml/>用于声明xml格式的配置文件
除了可以访问properties格式和xml格式的配置文件以外,Commons Configuration包还定义了JNDIConfiguration类来访问JNDI树格式的配置信息。


分享到:
评论

相关推荐

    org.apache.commons.configuration.XMLConfiguration的读取范例

    在这个范例中,我们将深入探讨如何使用 `XMLConfiguration` 类来读取XML配置文件,并从中提取数据。 XML配置文件是一种常见的存储应用程序设置的方式,因为它们结构清晰,易于人类阅读和编辑。`XMLConfiguration` ...

    Android应用源码之Configuration_Configuration.zip

    本资源"Android应用源码之Configuration_Configuration.zip"可能包含了深入解析Android Configuration类的源代码分析。 当我们谈论Android的Configuration时,首先要知道它是如何影响应用的。当设备的配置发生改变...

    spring4.0 Configuration的使用.docx

    - **@Configuration** 类内部通常包含一个或多个使用了 **@Bean** 注解的方法,这些方法将被 `AnnotationConfigApplicationContext` 或 `AnnotationConfigWebApplicationContext` 类扫描并用来构建 Bean 定义,最终...

    common-configuration的一些应用

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

    JAVA中的Configuration类详解

    JAVA中的Configuration类详解 JAVA中的Configuration类是Java平台默认的配置文件格式,优点是格式清晰,简单易懂。使用commons-configuration读取properties文件也比较简单。 基本用法: 1. 加载jar包,使用maven...

    Spring中 Configuration的使用.docx

    } }在测试类中,我们使用 AnnotationConfigApplicationContext 而不是 ClassPathXmlApplicationContext,因为 MyConfig 类上有 @Configuration 注解,表明这是一个配置类,Spring 将会读取这个类来创建 Bean。...

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

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

    C#修改配置文件Configuration_config

    使用`System.Configuration.ConfigurationManager`类可以轻松读取配置文件中的值。例如,读取`appSettings`中的键值对: ```csharp string key1 = ConfigurationManager.AppSettings["Key1"]; string ...

    ConfigurationTool.zip

    在给定的“ConfigurationTool.zip”压缩包中,我们找到了一个工具,它使用Oracle.ManagedDataAccess.Client库来实现对Oracle数据库的连接和操作,而无需安装完整的Oracle客户端。这种做法大大简化了系统的部署和维护...

    SpringBoot 中 AutoConfiguration的使用方法

    SpringBoot 中 AutoConfiguration 的使用方法 AutoConfiguration 是 Spring Boot 中的一种自动配置机制,通过该机制可以自动装配 Spring Boot 应用程序所需的依赖项。下面将详细介绍 AutoConfiguration 的使用方法...

    commons-configuration代码实例

    下面我们将深入探讨 Commons Configuration 的核心功能以及如何使用它来处理 properties、ini 和 XML 配置文件。 1. **Properties 文件**: - `Properties` 类是 Java 标准库的一部分,用于处理 `.properties` ...

    详解配置类为什么要添加@Configuration注解

    @Configuration 注解是 Spring Framework 中的一个重要组件,它用于标注配置类,告诉 Spring Framework 如何处理 Bean 的创建和管理。在本文中,我们将深入探讨为什么需要在配置类上添加 @Configuration 注解,并...

    commons-configuration2-2.1-bin.zip

    Commons Configuration 使用`XMLConfiguration`类来处理XML配置文件。它支持XPath表达式,允许你通过路径定位到特定的配置元素。此外,XMLConfiguration还具备递归解析嵌套元素的能力,这对于大型复杂应用来说非常...

    ConfigurationManager

    在.NET框架中,`ConfigurationManager`是一个非常重要的工具类,它主要用于应用程序配置文件(如App.config或Web.config)的读取与管理。本文将深入探讨`ConfigurationManager`的基本概念、工作原理以及如何在实际...

    软件框架-@Profile@Configuration设置环境配置类控制类实现将要激活的环境从8080端口激活并在控制台输出

    2.这个程序具体的内容我忘了,只知道使用@Profile@Configuration@RestController@Autowired(设置环境配置类控制类)等方法写的,具体实现的功能就是新建一些.yml和.java以及接口类文件,实现在.yml文件中配置指定要...

    commons-configuration-1.10.jar

    在本文中,我们将深入探讨`commons-configuration-1.10.jar`这个特定版本的特性、功能及其使用方法。 `commons-configuration-1.10.jar`是Apache Commons Configuration库的一个稳定版本,发布于2013年,它为开发者...

    自定义@Configuration配置类启用开关.zip

    在Spring Boot框架中,`@Configuration`注解是核心组件之一,它用于标记一个类作为配置类,使得我们可以使用Java配置来替代XML配置。在这个"自定义@Configuration配置类启用开关.zip"项目中,我们很显然会看到如何...

    自定义@Configuration配置类启用开关第二个版本.zip

    - 在Spring Boot中,通常会将@Configuration类放在主程序类所在的包或其子包下,这样Spring Boot自动扫描并加载配置。 2. **@ComponentScan** - 如果配置类需要扫描其他组件或配置类,可以使用`@ComponentScan`...

    Autofac.Configuration.3.3.0

    8. **API使用**:在代码中,可以通过`Autofac.ConfigurationSectionHandler`和`ContainerBuilderExtensions.LoadConfiguration`方法来加载配置文件并应用到Autofac容器中。 9. **集成测试**:依赖注入配置的分离...

Global site tag (gtag.js) - Google Analytics