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);
    }

}

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

相关文章推荐

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

这是一个使用Apache Commons Configuration对properties、xml配置文件的【增删改查】及动态加载的案例,Configuration是入门的良品,温馨提示:注意conf...

common-configuration读取xml,properties文件

我们在实际的开发设计中,通常要读各种各样的配置文件,十分烦琐.然而commons-configuration-1.0.jar为我们提供了非常方便的操作方式实例如下:1.读取XML文件中内容 impo...
  • zztp01
  • zztp01
  • 2011年08月22日 11:18
  • 4497

02 Mybatis应用篇---XML配置之properties 属性和settings 设置

MyBatis的配置文件包含了MyBatis设置(settings),属性(properties)等信息。文档的顶层结构如下: configuration 配置         * propertie...
  • mmd0308
  • mmd0308
  • 2017年03月28日 19:22
  • 383

spring 注入java.util.Properties 属性两种xml中的配置练习

spring 注入java.util.Properties 属性两种xml中的配置练习

Spring —— web.xml 中用 PropertyPlaceholderConfigurer 类读取properties 文件 或 属性

一、使用示例 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 类用于读取某个位置的.properties ...

自定义监听器类来加载web.xml中的<context-param>系统属性</context-param> 和xxx.properties文件属性

1:配置web.xml文件

Hibernate框架中hibernate.properties属性文件,hibernate.cfg.xml配置文件,以及Users.hbm.xml映射文件的配置

在实际开发中一般都是hibernate.properties和hibernate.cfg.xml结合使用。一般在属性文件hibernate.properties中存放数据库连接相关的操作数据,在hib...
  • HLoach
  • HLoach
  • 2017年03月09日 17:30
  • 1019

Java 利用commons-configuration.jar 动态修改配置文件(.properties)

import java.util.Map; import org.apache.commons.configuration.ConfigurationException; import org...

Configuration--properties(三-1)

上一篇文章我们看到了parseConfiguration方法,这个方法逐个解析configuration下面的子标签.本篇文章我们我们来看properties标签的作用.首先我们来看一下propert...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:commos configuration 获得xml,properties 的属性
举报原因:
原因补充:

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