ConfigUtilspublic class ConfigUtils {
private static PropertiesConfiguration config;
static {
try {
config = new PropertiesConfiguration("config.properties");
config.setReloadingStrategy(new FileChangedReloadingStrategy()); // 文件變更自動重載
config.setAutoSave(true); // 修改自動保存
} catch (ConfigurationException e) {
throw new RuntimeException("載入配置失敗", e);
}
}
private ConfigUtils() {}
public static String get(String key) {
return config != null ? config.getString(key, "") : "";
}
public static Integer getInteger(String key) {
try { return config != null ? Integer.parseInt(config.getString(key)) : -1; }
catch (NumberFormatException e) { return -1; }
}
// 可擴展 getLong, getBoolean, getList 等
}
FileChangedReloadingStrategy 監聽文件修改時間,無需重啟應用PropertiesConfiguration 內部同步getInteger 等,避免調用處重複解析/異常處理setAutoSave(true) 程序化修改配置即時落盤<dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.10</version> </dependency>
String dbUrl = ConfigUtils.get("jdbc.url");
int poolSize = ConfigUtils.getInteger("pool.maxSize");
適合 Spring Boot 外輕量級項目,或需動態調整參數(如限流閾值、開關)的場景。