加载tomcat下的属性文件

来源:互联网 发布:梦想与现实 知乎 编辑:程序博客网 时间:2024/05/22 06:30
//加载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
原创粉丝点击