您的位置:首页 > 运维架构 > Tomcat

加载tomcat下的属性文件

2016-07-11 17:24 447 查看
//加载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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: