-
اختبار الحزمة.bwl;
import java.io.FileNotFoundException;
import java.io.IOException;
استيراد java.io.InputStream؛
import java.util.Properties;
اختبار الطبقة العامة {
خصائص الخصائص الثابتة الخاصة = خصائص جديدة () ؛
public static void main(String[] args) {
يحاول {
InputStream is = Test.class.getClassLoader().getResourceAsStream("cache.properties");
property.load(is);
حجم السلسلة = خصائص.getProperty("cache.size");
writeLog("配置成功!" + size);
} قبض على (FileNotFoundException ه) {
writeLog("配置文件不存在!" + e.getMessage());
} قبض (IOException ه) {
writeLog("طلب IO 错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
اختبار الحزمة.bwl;
import java.io.FileNotFoundException;
import java.io.IOException;
استيراد java.io.InputStream؛
import java.util.Properties;
اختبار الطبقة العامة {
خصائص الخصائص الثابتة الخاصة = خصائص جديدة () ؛
public static void main(String[] args) {
يحاول {
InputStream is = Test.class.getClassLoader().getResourceAsStream("cache.properties");
property.load(is);
حجم السلسلة = خصائص.getProperty("cache.size");
writeLog("配置成功!" + size);
} قبض على (FileNotFoundException ه) {
writeLog("配置文件不存在!" + e.getMessage());
} قبض (IOException ه) {
writeLog("طلب IO 错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
اختبار الحزمة.bwl;
استيراد java.io.File؛
استيراد java.io.FileInputStream؛
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
استيراد java.io.InputStream؛
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Pattern;
/**
* طحن الحبوب
*
* @المؤلف بول
* @الإصدار 1.0
*/
مدير التكوين العام {
/**
*الحصول على أفضل النتائج
*/
فئة ثابتة خاصة SingletonHolder {
مثيل ConfigManager العام الثابت = new ConfigManager();
}
/**
* 取对象实例
* @يعود
*/
مدير التكوين الثابت العام getInstance() {
إرجاع SingletonHolder.instance;
}
/**
* خريطة 存储问题列表的
*/
خريطة خاصة <سلسلة، خصائص> name2properties؛
/**
* قم بالتنفيذ، قم بإنشاء getInstance()
*/
مدير التكوين الخاص () {
name2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
doInit();
}
/**
* 初始化方法
*/
الفراغ الخاص doInit () {
يحاول {
مسار الملف = ملف جديد("./conf/");
إذا (!path.exists()) {
System.out.println("خطأ في تهيئة ConfilgManager: لا يوجد مجلد باسم 'conf' ضمن ملف src.");
يعود؛
}
File[] confFiles = path.listFiles(new DirFilter(".*\.properties"));//\
for (int i = 0; i < confFiles.length; i++) {
الملف f = confFiles[i];
إذا (f.exists() && f.isFile()) {
خصائص الخصائص = خصائص جديدة ()؛
InputStream is = new FileInputStream(f);
property.load(is);
name2properties.put(f.getName(), Properties);
}
}
} قبض على (FileNotFoundException ه) {
printStackTrace();
} قبض (IOException ه) {
printStackTrace();
}
}
/**
* 获取配置项的值
* @param fileName 配置文件的名称
* @param key 关键码的值
* @return 配置项
*/
سلسلة getProperty العامة (اسم الملف سلسلة، مفتاح السلسلة) {
إذا (اسم الملف == فارغ || fileName. length() == 0) {
عودة فارغة؛
}
خصائص الدعامة = name2properties.get(fileName);
إذا (دعامة != فارغة) {
returnprop.getProperty(key);
}
عودة فارغة؛
}
/**
*الحصول على أفضل النتائج
* @param fileName 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字،否则返回-1
*/
public int getIntProperty(String fileName, String key) {
قيمة السلسلة = this.getProperty(fileName, key);
نتيجة كثافة العمليات = -1؛
إذا (القيمة == فارغة) {
نتيجة الإرجاع؛
}
يحاول {
النتيجة = Integer.parseInt(value);
نتيجة الإرجاع؛
} قبض (الاستثناء ه) {
// لا تفعل شيئًا
}
نتيجة الإرجاع؛
}
/**
*الحصول على أفضل النتائج
*/
فئة DirFilter تنفذ FilenameFilter {
/**
*الحصول على أفضل النتائج
*/
نمط نمط خاص؛
DirFilter العام (سلسلة regex) {
Pattern = Pattern.compile(regex);
}
قبول منطقي عام (ملف دير، اسم السلسلة) {
إرجاع Pattern.matcher(new File(name).getName()).matches();
}
}
public static void main(String[] args) {
ConfigManager config = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}