•访问Properties格式的配置文件
问题:
希望能以精确类型的方式访问到配置信息,而不仅仅是String类型。
解决方案:
使用PropertiesConfiguration类可以加载并访问properties格式的配置文件,并提供对数值型、数组型和List列表型配置信息的支持。
比如,有如下的配置信息:
speed=23.332
names=Bob,Gautam,Jarret,Stefan
correct=false
|
可以像这样来访问他们:
Configuration config = new PropertiesConfiguration(getClass().getResource("/config.properties"));
float speed = config.getFloat("speed");
List names = config.getList("names");
boolean correct = config.getBoolean("correct");
|
传递给PropertiesConfiguration构建函数的参数可以是文件名、可以访问到文件的URL、以及文件本身(File对象)。当然,Properties类也可以完成同样的事情,但只支持返回String类型的值。
•访问XML格式的配置文件
问题:
希望使用XML格式的配置文件来配置应用程序。
解决方案:
Configuration config = new XMLConfiguration("/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对象)。
•访问组合配置
问题:
有时候应用程序使用一种多层结构的配置方式,即上一层的配置可以被下一层选择性地覆盖。
解决方案:
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(this.class.getResource("/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树格式的配置信息,具体的方法请参考其他相关文档。
•手动配置
问题:
有时候应用程序使用一种手动的配置方式。
解决方案:
CompositeConfiguration config = new CompositeConfiguration();
config.addConfiguration(new PropertiesConfiguration("/config.properties" ));
config.addConfiguration( new XMLConfiguration("/config.xml"));
// 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"));
|
分享到:
相关推荐
Maven坐标:org.apache.commons:commons-configuration2:2.1.1; 标签:apache、commons、configuration2、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档...
Maven坐标:org.apache.commons:commons-configuration2:2.1.1; 标签:apache、commons、configuration2、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...
commons-configuration2-2.0.jar Apache commons-configuration 读取配置文件
官方commons-configuration-1.10的jar包
NULL 博文链接:https://topmanopensource.iteye.com/blog/1131794
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 ...
httpcomponents-client source ,Document( commons-beanutils commons-io commons-fileupload commons-lang,commons-math,commons-validator,commons-dbutils,commons-dbcp,commons-configuration)
3.2.1-src.zip commons-configuration-1.5-src.zip commons-configuration-1.5.zip commons-daemon-1.0.1.tar.gz commons-dbcp-1.2.2-src.zip commons-dbcp-1.2.2.zip commons-dbutils-1.1-src....
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,测试可用
apache-sanselan-incubating-0.97-bin bcel-5.2 commons-beanutils-1.9.2-bin commons-chain-1.2-bin commons-cli-1.3.1-bin commons-codec-1.10-bin commons-collections4-4.0-bin commons-configuration-1.10-bin...
commons configuration读取配置文件的例子,包括properties文件,ini文件和xml文件
Apache Commons Configuration
commons-configuration-1.9-bin.zip commons-daemon-1.0.11-bin.zip commons-dbcp-1.4-bin.zip commons-dbutils-1.5-bin.zip commons-digester3-3.2-bin.zip commons-discovery-0.5-bin.zip commons-el-1.0.zip ...
3.2.1-src.zip commons-configuration-1.5-src.zip commons-configuration-1.5.zip commons-daemon-1.0.1.tar.gz commons-dbcp-1.2.2-src.zip commons-dbcp-1.2.2.zip commons-dbutils-1.1-src....
NULL 博文链接:https://liuzidong.iteye.com/blog/776730
Apache配置演示 Apache Commons Configuration 2学习
3.2.1-src.zip commons-configuration-1.5-src.zip commons-configuration-1.5.zip commons-daemon-1.0.1.tar.gz commons-dbcp-1.2.2-src.zip commons-dbcp-1.2.2.zip commons-dbutils-1.1-src....
3.2.1-src.zip commons-configuration-1.5-src.zip commons-configuration-1.5.zip commons-daemon-1.0.1.tar.gz commons-dbcp-1.2.2-src.zip commons-dbcp-1.2.2.zip commons-dbutils-1.1-src....