commos configuration 获得xml,properties 的属性

原创 2016年08月31日 09:13:01
<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);
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mybatis_review之配置文件中的properties节点内容说明

Properties的设置格式 在Demo项目中使用的Mybatis-config.xml文件中的配置如下: ...
  • ziwen00
  • ziwen00
  • 2014年08月02日 17:10
  • 6096

Java平台 利用Common Configuration 读取配置文件

Apache Commons Configuration是一个开源组件,可以方便的对项目中的配置文件进行读取和保存...
  • semicloud
  • semicloud
  • 2014年08月15日 12:38
  • 3054

log4j的两种配置xml与properties

采用xml格式配置log4j的配置文件方式,例子: log4j.xml log4j:configuration> appender name="cons...
  • u010072911
  • u010072911
  • 2014年05月13日 16:51
  • 3594

怎么读出Xml文件中某个节点、属性的信息

待处理的Xml文件: AAAA BBBB CCCC DDDD EEEE aaaa bbbb cccc dddd eeee 处理目标获取节点isexchange...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014年01月08日 09:45
  • 3499

Spring中属性文件properties的读取与使用

参考自点击打开链接 实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理。例中将需配置的属性信息放在属性文件/WEB-INF/configI...
  • xiebinyuxyz
  • xiebinyuxyz
  • 2016年09月07日 16:08
  • 572

【Java Web】——配置文件的格式之xml和properties的区分

【何为配置文件】          百度百科解释:用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合。它包括所有用户专用的配置设置,如程序项目、...
  • u013035538
  • u013035538
  • 2016年09月18日 21:55
  • 4227

spring配置中,properties文件以及xml文件配置问题

一、在springMVC配置读取properties文件
  • wtxwd
  • wtxwd
  • 2016年09月21日 10:47
  • 2195

spring引入properties文件,并在controller等层获得引入文件中属性的值

参考以下两篇吧。下面两篇讲了在xml中引入jdbc.properties文件属性中的使用方法,我另外介绍一下在controller等层怎么使用配置文件中的属性。 例如:你在spring中引入了a.pr...
  • wabiaozia
  • wabiaozia
  • 2016年06月10日 16:12
  • 9495

Speing中配置Properties属性值 ,使用props和prop子节点来为Properties属性赋值

1:javaBean package com.study.bean; public class Car {      private String brand; private St...
  • pangqiandou
  • pangqiandou
  • 2016年11月18日 23:58
  • 1061

配置文件的格式之xml和properties的区分

【何为配置文件】          百度百科解释:用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合。它包括所有用户专用的配置设...
  • bimuzi
  • bimuzi
  • 2017年06月02日 10:43
  • 417
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:commos configuration 获得xml,properties 的属性
举报原因:
原因补充:

(最多只允许输入30个字)