org.apache.commons.configuration.Configuration 配置文件

混合各种配置资源
  经常你希望提供一套基本的配置信息,而且允许用户很容易的根据他们的特有的环境覆盖他们。
    
一种办法就是载你的代码中队默认值进行硬编码,并且提供一个配置文件来覆盖他们。  
    这是做法没有一点弹性。替换做法是:运用 CompositeConfiguration

CompositeConfiguration config = new CompositeConfiguration();

config.addConfiguration(new SystemConfiguration());

config.addConfiguration(new PropertiesConfiguration("application.properties"));
或者通过ConfigurationFactory这个类

    ConfigurationFactory factory = new ConfigurationFactory("config.xml");

    Configuration config = factory.getConfiguration();

   或者这么写 (两种写法默认配置文件是在class-path下面)

   ConfigurationFactory factory  = new ConfigurationFactory();

   URL url = ConfigurationUtil.class.getResources("config.xml")

   factory.setConfigurationURL(url);

   还有个写法可以定位到任何一个位置,它还可以接受带有“../”符号的相对路径,实现自由寻找资源的路径。

   configurationFactory = new ConfigurationFactory();

   写法一:
   //System.out.println(ConfigurationUtil.class.getClassLoader().getResources("../config.xml"));

   写法二:
   URL url = Thread.currentThread().getContextClassLoader().getResource("../config.xml");
   configurationFactory.setConfigurationURL(url);

   上面的config.xml是一个配置描述符。它定义了将要被装载的配置对象(资源文件),例如:

   <?xml version="1.0" encoding="ISO-8859-1" ?>

   <configuration>

   <system/>

   <properties fileName="application.properties"/>

   </configuration>
   读取属性文件的方式

   方法一:

   //com.rock.action是属性文件所在的包,application是属性文件名称,省略了.properties 

   ResourceBundle res = ResourceBundle.getBundle("com.rock.action.application");

   String app_ip = res.getString("xiaochuan").trim();

   System.out.println("app_ip="+app_ip); 

 

   方法二:

    public final class Config {
      private static Properties config;
      private Config() {
      };

      static {
        InputStream is = Config.class.getResourceAsStream("/upload-config.properties");       
        config = new Properties();
        try {
            config.load(is);
            System.out.println("config ="+config);
        } catch (Exception e) {
            e.printStackTrace();
        }
      }

      public static Properties getConfig() {
        return config;
      }
    }

   使用:Config.getConfig().getProperty(“user-path”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值