Apache Commons-configuration 范例

配置文件动态加载与解析
本文介绍了一种通过配置文件实现动态参数加载的方法,并展示了如何使用特定的Java类来读取和解析配置文件中的属性。此外,还演示了如何设置配置文件的重新加载策略以实时更新应用程序中的设置。
configuration.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    
<header>
        
<result forceReloadCheck="true"></result>
    
</header>

    
<override>
        
<system />
        
<properties fileName="${user.home}/users.properties">
            
<reloadingStrategy config-class="org.apache.commons.configuration.reloading.FileChangedReloadingStrategy"
                refreshDelay
="1000" />
        
</properties>
        
<xml fileName="hibernate.cfg.xml" />
    
</override>
</configuration>

users.properties
a.b=sss
a.a=${sys:user.dir}-${a.b}


hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    
<session-factory>
        
<property name="connection.username">aName</property>
        
<property name="connection.url">
            jdbc:oracle:thin:@192.168.0.123:1521:ora123
        
</property>
        
<property name="dialect">
            org.hibernate.dialect.Oracle9Dialect
        
</property>
        
<property name="myeclipse.connection.profile">
            oracle.jdbc.driver.OracleDriver
        
</property>
        
<property name="connection.password">pass</property>
        
<property name="connection.driver_class">
            oracle.jdbc.driver.OracleDriver
        
</property>
        
<mapping resource="test/TABLE_ONE.hbm.xml" />

    
</session-factory>

</hibernate-configuration>


Test.java
    ConfigurationBuilder factory = new DefaultConfigurationBuilder("bin/configuration.xml");
    Configuration config 
= factory.getConfiguration();
    System.out.println(config.getClass());
   
    
for (int i = 0; i < 50; i++{
        
//System.out.println(rs.reloadingRequired());
        System.out.println(config.getString("a.a"));
        Thread.sleep(
1000);
    }

        System.out.println(config.getString("a.a"));
        System.out.println(config.getString("a.b"));
        System.out.println(config.getString("session-factory.mapping[@resource]"));
        System.out.println(config.getString("session-factory.property(0)[@name]"));
        System.out.println(config.getString("session-factory.property(1)"));
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值