首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Properties 配置文件工具類:自動熱加載、類型安全獲取、Apache Commons Configuration 封裝

     編輯:Java 綜合教學

Properties 配置文件工具類:自動熱加載、類型安全獲取、Apache Commons Configuration 封裝

工具類 ConfigUtils

public 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 外輕量級項目,或需動態調整參數(如限流閾值、開關)的場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved