-
paquete prueba.bwl;
importar java.io.FileNotFoundException;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.Properties;
Prueba de clase pública {
Propiedades estáticas privadas propiedades = nuevas Propiedades();
público estático vacío principal (String [] argumentos) {
intentar {
InputStream es = Test.class.getClassLoader().getResourceAsStream("cache.properties");
propiedades.cargar(es);
Tamaño de cadena = properties.getProperty("cache.size");
writeLog("配置成功!" + tamaño);
} captura (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} captura (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
writeLog vacío estático público (String strLog) {
System.out.println(strLog);
}
}
paquete prueba.bwl;
importar java.io.FileNotFoundException;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.Properties;
Prueba de clase pública {
Propiedades estáticas privadas propiedades = nuevas Propiedades();
público estático vacío principal (String [] argumentos) {
intentar {
InputStream es = Test.class.getClassLoader().getResourceAsStream("cache.properties");
propiedades.cargar(es);
Tamaño de cadena = properties.getProperty("cache.size");
writeLog("配置成功!" + tamaño);
} captura (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} captura (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
writeLog vacío estático público (String strLog) {
System.out.println(strLog);
}
}
paquete prueba.bwl;
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.FileNotFoundException;
importar java.io.FilenameFilter;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.Collections;
importar java.util.HashMap;
importar java.util.Map;
importar java.util.Properties;
importar java.util.regex.Pattern;
/**
* 配置信息管理器
*
* @autor bwl
* @versión 1.0
*/
clase pública ConfigManager {
/**
* 提供单例对象的静态内部类
*/
clase estática privada SingletonHolder {
instancia pública estática de ConfigManager = nuevo ConfigManager();
}
/**
* 获取对象实例
* @devolver
*/
getInstance del ConfigManager estático público() {
devolver SingletonHolder.instancia;
}
/**
* 存储问题列表的Mapa
*/
Mapa privado<Cadena, Propiedades> nombre2properties;
/**
* 构造方法,请使用getInstance()获取实例
*/
Administrador de configuración privado() {
nombre2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
hacerInit();
}
/**
* 初始化方法
*/
vacío privado doInit() {
intentar {
Ruta del archivo = nuevo archivo("./conf/");
si (!ruta.existe()) {
System.out.println("Error de inicio de ConfigManager: no hay ninguna carpeta llamada 'conf' en el archivo src.");
devolver;
}
Archivo[] confFiles = path.listFiles(new DirFilter(".*\.properties"));//\
for (int i = 0; i < confFiles.length; i++) {
Archivo f = confFiles[i];
si (f.existe() && f.isFile()) {
Propiedades propiedades = nuevas Propiedades();
InputStream es = nuevo FileInputStream(f);
propiedades.cargar(es);
nombre2properties.put(f.getName(), propiedades);
}
}
} captura (FileNotFoundException e) {
e.printStackTrace();
} captura (IOException e) {
e.printStackTrace();
}
}
/**
* 获取配置项的值
* @param fileName 配置文件的名称
* @param clave 关键码的值
* @return
*/
cadena pública getProperty (nombre de archivo de cadena, clave de cadena) {
if (nombre de archivo == null || nombre de archivo.length() == 0) {
devolver nulo;
}
Propiedades prop = nombre2properties.get (nombre de archivo);
si (propiedad! = nulo) {
devolver prop.getProperty(clave);
}
devolver nulo;
}
/**
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字,否则返回-1
*/
public int getIntProperty (nombre de archivo de cadena, clave de cadena) {
Valor de cadena = this.getProperty (nombre de archivo, clave);
resultado entero = -1;
si (valor == nulo) {
resultado de devolución;
}
intentar {
resultado = Integer.parseInt(valor);
resultado de devolución;
} captura (Excepción e) {
//no hacer nada
}
resultado de devolución;
}
/**
* 过滤属性文件的内部类
*/
clase DirFilter implementa FilenameFilter {
/**
* 记录文件名格式的正则对象
*/
patrón de patrón privado;
filtro de directorio público (expresión regular de cadena) {
patrón = Patrón.compile(expresión regular);
}
aceptación booleana pública (directorio de archivo, nombre de cadena) {
return patrón.matcher(new File(name).getName()).matches();
}
}
público estático vacío principal (String [] argumentos) {
Configuración de ConfigManager = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}