轻松

记述我学习java的里程

常用链接

统计

积分与排名

友情链接

最新评论

Commons 阅读笔记 之 Configuration 篇

•访问Properties格式的配置文件
问题:
希望能以精确类型的方式访问到配置信息,而不仅仅是String类型。 
解决方案:
使用PropertiesConfiguration类可以加载并访问properties格式的配置文件,并提供对数值型、数组型和List列表型配置信息的支持。
比如,有如下的配置信息:

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类型的值。

•访问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对象)。

•访问组合配置
问题:
有时候应用程序使用一种多层结构的配置方式,即上一层的配置可以被下一层选择性地覆盖。
解决方案:
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树格式的配置信息,具体的方法请参考其他相关文档。

posted on 2005-04-14 14:52 轻松 阅读(3114) 评论(2)  编辑  收藏 所属分类: JAVA转贴

评论

# re: Commons 阅Configuration config = new PropertiesConfiguration(getClass()记 之 Configuration 篇 2007-04-05 14:58 Configuration config = new PropertiesConfiguration

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

这个里面的getClass().getResource()是哪儿来的?  回复  更多评论   

# re: Commons 阅读笔记 之 Configuration 篇 2007-08-14 14:50 同声翻译公司

推荐一个免费的多语种互译在线翻译公司,在线翻译网站www.165net.com,可进行十多种语言的互译:汉语、英语、日语、德语、法语、俄语、韩语、意大利语、西班牙语、葡萄牙语、希腊语和荷兰语等。同时该网站还提供人工翻译服务,在全国各大城市都有办事处。

北京华译网翻译公司
中国专家翻译网
地址:北京海淀区太阳园17号楼405室(北三环西路大钟寺东侧)邮编:100098
电话:010-82115891 82115892 传真010-82130386
上海:上海漕溪北路38号20G (东方商厦后面实业公寓南楼)
电话:021-34240860 34240925 传真:021-34240925

同传租赁 同声传译翻译公司 同声传译设备租赁 同声传译 同声传译设备租赁 同传租赁 北京同传设备租赁 上海同声传译设备租赁 同声传译
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: