您的位置:首页 > 运维架构

commos configuration 获得xml,properties 的属性

2016-08-31 09:13 190 查看
<jdbc.properties 测试文件>

jdbc.url=com.jdbc.mysql.Driver , oracle.jdbc.driver.OracleDriver
jdbc.username=root
jdbc.password=root
jdbc.int=1
jdbc.double=0.1
jdbc.boolean=true

<rfic.xml 测试文件>

<?xml version="1.0" encoding="UTF-8"?>

<!--xml文件的书写方式不同获取数据的方法不同-->
<rfics>

<!--示例1-->
<rfisc>
<code>18</code>
<desc>测试数据,测试数据18</desc>
</rfisc>
<rfisc>
<code>19</code>
<desc>测试数据,测试数据19</desc>
</rfisc>
<rfisc>
<code>20</code>
<desc>测试数据,测试数据20</desc>
</rfisc>

<!--示例2-->
<!--<rfisc code="18" desc="测试数据,测试数据18" />
<rfisc code="19" desc="测试数据,测试数据19" />
<rfisc code="20" desc="测试数据,测试数据20" />
<rfisc code="21" desc="测试数据,测试数据21" />
<rfisc code="22" desc="测试数据,测试数据22" />
<rfisc code="23" desc="测试数据,测试数据23" />
<rfisc code="24" desc="测试数据,测试数据24" />
<rfisc code="25" desc="测试数据,测试数据25" />
<rfisc code="26" desc="测试数据,测试数据26" />
<rfisc code="27" desc="测试数据,测试数据27" />-->

</rfics>

<propManager.java  properties测试类>

package com.*.demo;

import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;

import java.util.ArrayList;
import java.util.List;

/**
* commons configuration 获取properties属性
*/
public class PropManager {
public static void main(String[] args) throws ConfigurationException {

//不指定文件的绝对路径,程序将自动搜索
//commons.configuration 能帮我们返回properties的一个值得列表
Configuration config = new PropertiesConfiguration("jdbc.properties");

//返回list
System.out.println("#################### 返回list ###############################");
List<String> urls = config.getList("jdbc.url");
System.out.println(urls.get(0));
System.out.println(urls.get(1));
for (String url : urls){
System.out.println(url);
}
//返回数组
System.out.println("#################### 返回数组 ###############################");
String[] configStringArray = config.getStringArray("jdbc.url");
System.out.println(configStringArray[0]);
System.out.println(configStringArray[1]);
for (String str : configStringArray){
System.out.println(str);
}

//返回单条数据
System.out.println("#################### 返回单条数据 ###########################");
System.out.println(config.getString("jdbc.username"));

//返回int数据
System.out.println("#################### 返回int数据 ############################");
int configInt = config.getInt("jdbc.int");
System.out.println(configInt);

//返回double数据
System.out.println("#################### 回double数据 ###########################");
double configDouble = config.getDouble("jdbc.double");
System.out.println(configDouble);

//返回boolean数据
System.out.println("#################### 返回boolean数据 ########################");
boolean configBoolean = config.getBoolean("jdbc.boolean");
System.out.println(configBoolean);

//在返回值为空的情况下设置默认值
System.out.println("#################### 在返回值在空的情况下设置默认值 ##########");
String configString = config.getString("jdbc.defult", new String("我是默认值"));
System.out.println(configString);

/**
* java操作的字节码文件,.Java文件被编译后放在一个统一的包里面,我们的xml,properties文件都会在那个包下
* 有一份,所以我们增加的新属性,只有在那个包下才能看的到。(idea的在out目录下,eclipse的在它的bin目录下)
*/
System.out.println("#################### 增加配置文件的属性 ######################");
PropertiesConfiguration configuration = new PropertiesConfiguration("jdbc.properties");
//增加配置文件的属性
configuration.setProperty("jdbc.new" , "我是新属性");
configuration.save();
System.out.println("添加成功");

}
}

<xmlManager.java  xml测试类>

package com.*.demo;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;

import java.util.Arrays;
import java.util.List;

/**
* commons configuration 获取xml属性
*/
public class XmlManager {

//可以根据(fileName , file , url)configuration自动帮我们查找
private static XMLConfiguration configuration = null;

static {
try {
configuration = new XMLConfiguration("rfic.xml");  //fileName
} catch (ConfigurationException e) {
e.printStackTrace();
}
}

//测试
public static void main(String[] args){
test1();
test2();
}

/**
* xml文件示例1
*/
public static void test1(){
System.out.println("#################示例1测试#################");
//获得list
List oneCodes = configuration.getList("rfisc.code");
List oneDescs = configuration.getList("rfisc.desc");
System.out.println(oneCodes);
System.out.println(oneDescs);
//获得array
String[] oneStrCode = configuration.getStringArray("rfisc.code");
String[] oneStrDesc = configuration.getStringArray("rfisc.desc");
System.out.println(Arrays.toString(oneStrCode));
System.out.println(Arrays.toString(oneStrDesc));
//获得单条数据
String oneCode = configuration.getString("rfisc(0).code");
String oneDesc = configuration.getString("rfisc(0).desc");
System.out.println(oneCode);
System.out.println(oneDesc);
}

/**
* xml文件示例二
*/
public static void test2(){
System.out.println("#################示例2测试#################");
//获得list
List twoCodes = configuration.getList("rfisc[@code]");
List twoDescs = configuration.getList("rfisc[@desc]");
System.out.println(twoCodes);
System.out.println(twoDescs);
//获得array
String[] twoStrCode = configuration.getStringArray("rfisc[@code]");
String[] twoStrDesc = configuration.getStringArray("rfisc[@desc]");
System.out.println(Arrays.toString(twoStrCode));
System.out.println(Arrays.toString(twoStrDesc));
//获得单条数据
String twoCode = configuration.getString("rfisc(0)[@code]");  //数据下标从0开始
System.out.println(twoCode);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  commons configuratio
相关文章推荐