加载tomcat下的属性文件


//加载apache-tomcat-7.0.28\conf\common下所有的properties属性文件


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;

public class ConfigLoader
{
  private Properties pro = new Properties();
  private static final String MX_COMMON_PATH = "/conf/common";
  private static final String CONFIG_ABSOLUTE_PATH = "mx.config.base.path";
  private static final String[] fileTypes = { ".properties", ".xml" };
  private static ConfigLoader instance;

  private ConfigLoader()
  {
    init();
  }
  private void init() {
    String path = System.getProperty("catalina.home");
    if ((null == path) || (path.isEmpty())) {
      System.out.println("ERROR: !!! catalina home path is empty, please start the tomcat.");
      return;
    }
    path = path + "/conf/mx-common";

    System.out.println(path);

    this.pro = new Properties();
    List ins = new ArrayList();
    try {
      File root = new File(path);
      for (File file : root.listFiles()) {
        System.out.println(file.getName());
        if (isValidFileType(file.getName())) {
          InputStream in = new FileInputStream(file);
          ins.add(in);
          this.pro.load(in);
        }
      }
      this.pro.put("mx.config.base.path", path);
    }
    catch (Exception e)
    {
      Iterator i$;
      InputStream in;
      e.printStackTrace();
    }
    finally
    {
      try
      {
        Iterator i$;
        InputStream in;
        for (InputStream in : ins)
          if (in != null)
            in.close();
      }
      catch (IOException e)
      {
        e.printStackTrace();
      }
    }
  }

  public static synchronized ConfigLoader getInstance()
  {
    if (instance == null) {
      instance = ConfigLoaderHolder.instance;
    }
    return instance;
  }

  public String getProperty(String key) {
    return getProperty(key, false);
  }

  public String getProperty(String key, boolean isReload) {
    if (isReload) {
      init();
    }
    if (this.pro.containsKey(key)) {
      return this.pro.getProperty(key);
    }
    System.out.println("ERROR: !!! Not found key:[" + key + "]");
    return "";
  }

  public boolean containsKey(String key) {
    return this.pro.containsKey(key);
  }

  private boolean isValidFileType(String name) {
    for (String type : fileTypes) {
      if (name.endsWith(type)) {
        return true;
      }
    }

    return false;
  }

  private static class ConfigLoaderHolder
  {
    private static ConfigLoader instance = new ConfigLoader(null);
  }
}

用法:

String str = ConfigLoader.getInstance().getProperty("属性名称").toString();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值