Class OpenConfig

java.lang.Object
cloud.opencode.base.config.OpenConfig

public final class OpenConfig extends Object
Global Configuration Manager Facade 全局配置管理器门面

This class provides a unified entry point for configuration management with support for multiple sources, type conversion, hot reloading, and more.

此类提供配置管理的统一入口,支持多配置源、类型转换、热重载等功能。

Features | 主要功能:

  • Global configuration singleton - 全局配置单例
  • Fluent builder API - 流式构建器API
  • Static delegate methods - 静态委托方法
  • Multiple configuration sources - 多配置源支持
  • Hot reload capability - 热重载能力

Usage Examples | 使用示例:

// Use default configuration
String dbUrl = OpenConfig.getString("database.url");
int port = OpenConfig.getInt("server.port", 8080);

// Build custom configuration
Config config = OpenConfig.builder()
    .addClasspathResource("application.properties")
    .addEnvironmentVariables()
    .addSystemProperties()
    .enableHotReload()
    .build();

OpenConfig.setGlobal(config);

// Quick loading
Config fileConfig = OpenConfig.loadFromFile(Path.of("config.properties"));
Config classpathConfig = OpenConfig.loadFromClasspath("app.properties");

Performance | 性能特性:

  • Time complexity: O(1) for singleton access - 时间复杂度: 单例访问为O(1)
  • Lazy initialization with double-check locking - 双重检查锁的懒加载
  • Thread-safe global configuration - 线程安全的全局配置

Security | 安全性:

  • Thread-safe: Yes - 线程安全: 是
  • Immutable facade - 不可变门面
Since:
JDK 25, opencode-base-config V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • getGlobal

      public static Config getGlobal()
      Get global configuration instance 获取全局配置实例

      Uses lazy initialization with double-check locking pattern.

      使用双重检查锁模式的懒加载。

      Returns:
      global configuration | 全局配置
    • setGlobal

      public static void setGlobal(Config config)
      Set global configuration 设置全局配置
      Parameters:
      config - configuration instance | 配置实例
    • builder

      public static ConfigBuilder builder()
      Create configuration builder 创建配置构建器
      Returns:
      new builder instance | 新的构建器实例
    • getString

      public static String getString(String key)
    • getString

      public static String getString(String key, String defaultValue)
    • getInt

      public static int getInt(String key)
    • getInt

      public static int getInt(String key, int defaultValue)
    • getLong

      public static long getLong(String key)
    • getLong

      public static long getLong(String key, long defaultValue)
    • getDouble

      public static double getDouble(String key)
    • getDouble

      public static double getDouble(String key, double defaultValue)
    • getBoolean

      public static boolean getBoolean(String key)
    • getBoolean

      public static boolean getBoolean(String key, boolean defaultValue)
    • getDuration

      public static Duration getDuration(String key)
    • getDuration

      public static Duration getDuration(String key, Duration defaultValue)
    • get

      public static <T> T get(String key, Class<T> type)
    • get

      public static <T> T get(String key, Class<T> type, T defaultValue)
    • getList

      public static <T> List<T> getList(String key, Class<T> elementType)
    • getMap

      public static <K,V> Map<K,V> getMap(String key, Class<K> keyType, Class<V> valueType)
    • getOptional

      public static <T> Optional<T> getOptional(String key, Class<T> type)
    • getOptional

      public static Optional<String> getOptional(String key)
    • getSubConfig

      public static Config getSubConfig(String prefix)
    • getByPrefix

      public static Map<String,String> getByPrefix(String prefix)
    • hasKey

      public static boolean hasKey(String key)
    • getKeys

      public static Set<String> getKeys()
    • bind

      public static <T> T bind(String prefix, Class<T> type)
    • bindTo

      public static <T> void bindTo(String prefix, T target)
    • loadFromClasspath

      public static Config loadFromClasspath(String... resources)
      Load configuration from classpath resources 从类路径资源加载配置
      Parameters:
      resources - resource paths | 资源路径
      Returns:
      configuration instance | 配置实例
    • loadFromFile

      public static Config loadFromFile(Path... files)
      Load configuration from files 从文件加载配置
      Parameters:
      files - file paths | 文件路径
      Returns:
      configuration instance | 配置实例
    • loadFromProperties

      public static Config loadFromProperties(Map<String,String> properties)
      Load configuration from properties map 从属性映射加载配置
      Parameters:
      properties - properties map | 属性映射
      Returns:
      configuration instance | 配置实例