Class ConfigBuilder

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

public class ConfigBuilder extends Object
Configuration Builder 配置构建器

Fluent builder for constructing Config instances with multiple sources, validators, converters, and options.

用于构建Config实例的流式构建器,支持多源、验证器、转换器和选项。

Features | 主要功能:

  • Fluent builder API - 流式构建器API
  • Multiple configuration sources - 多配置源
  • Custom type converters - 自定义类型转换器
  • Configuration validation - 配置验证
  • Placeholder resolution control - 占位符解析控制
  • Hot reload configuration - 热重载配置

Usage Examples | 使用示例:

Config config = OpenConfig.builder()
    // Add sources (后添加的优先级更高)
    .addClasspathResource("default.properties")
    .addClasspathResource("application.properties")
    .addFile(Path.of("/etc/app/config.properties"))
    .addEnvironmentVariables("APP")
    .addSystemProperties()
    .addCommandLineArgs(args)

    // Register custom converters
    .registerConverter(InetAddress.class, InetAddress::getByName)

    // Validation
    .required("database.url", "database.password")

    // Features
    .enableHotReload()
    .hotReloadInterval(Duration.ofSeconds(10))

    .build();

Security | 安全性:

  • Thread-safe: No - 线程安全: 否
  • Use in single thread during configuration - 在配置期间使用单线程

Performance | 性能特性:

  • Time complexity: O(s) to build where s is the number of registered sources - 时间复杂度: O(s),s 为注册的配置源数量
  • Space complexity: O(s) for source and validator lists - 空间复杂度: O(s) 存储配置源和验证器列表
Since:
JDK 25, opencode-base-config V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Constructor Details

    • ConfigBuilder

      public ConfigBuilder()
  • Method Details

    • addClasspathResource

      public ConfigBuilder addClasspathResource(String resource)
      Add classpath resource 添加类路径资源
      Parameters:
      resource - resource path | 资源路径
      Returns:
      this builder | 构建器
    • addClasspathResources

      public ConfigBuilder addClasspathResources(String... resources)
      Add multiple classpath resources 添加多个类路径资源
      Parameters:
      resources - resource paths | 资源路径
      Returns:
      this builder | 构建器
    • addFile

      public ConfigBuilder addFile(Path file)
      Add file 添加文件
      Parameters:
      file - file path | 文件路径
      Returns:
      this builder | 构建器
    • addFiles

      public ConfigBuilder addFiles(Path... files)
      Add multiple files 添加多个文件
      Parameters:
      files - file paths | 文件路径
      Returns:
      this builder | 构建器
    • addSystemProperties

      public ConfigBuilder addSystemProperties()
      Add system properties 添加系统属性
      Returns:
      this builder | 构建器
    • addEnvironmentVariables

      public ConfigBuilder addEnvironmentVariables()
      Add environment variables 添加环境变量
      Returns:
      this builder | 构建器
    • addEnvironmentVariables

      public ConfigBuilder addEnvironmentVariables(String prefix)
      Add environment variables with prefix filter 添加环境变量(带前缀过滤)
      Parameters:
      prefix - environment variable prefix | 环境变量前缀
      Returns:
      this builder | 构建器
    • addCommandLineArgs

      public ConfigBuilder addCommandLineArgs(String[] args)
      Add command line arguments 添加命令行参数
      Parameters:
      args - command line arguments | 命令行参数
      Returns:
      this builder | 构建器
    • addProperties

      public ConfigBuilder addProperties(Map<String,String> properties)
      Add properties map 添加属性映射
      Parameters:
      properties - properties map | 属性映射
      Returns:
      this builder | 构建器
    • addSource

      public ConfigBuilder addSource(ConfigSource source)
      Add custom configuration source 添加自定义配置源
      Parameters:
      source - configuration source | 配置源
      Returns:
      this builder | 构建器
    • registerConverter

      public <T> ConfigBuilder registerConverter(Class<T> type, ConfigConverter<T> converter)
      Register type converter 注册类型转换器
      Type Parameters:
      T - target type | 目标类型
      Parameters:
      type - target class | 目标类
      converter - converter function | 转换器函数
      Returns:
      this builder | 构建器
    • disablePlaceholders

      public ConfigBuilder disablePlaceholders()
      Disable placeholder resolution 禁用占位符解析
      Returns:
      this builder | 构建器
    • enableHotReload

      public ConfigBuilder enableHotReload()
      Enable hot reload 启用热重载
      Returns:
      this builder | 构建器
    • hotReloadInterval

      public ConfigBuilder hotReloadInterval(Duration interval)
      Set hot reload interval 设置热重载间隔
      Parameters:
      interval - check interval | 检查间隔
      Returns:
      this builder | 构建器
    • addValidator

      public ConfigBuilder addValidator(ConfigValidator validator)
      Add validator 添加验证器
      Parameters:
      validator - configuration validator | 配置验证器
      Returns:
      this builder | 构建器
    • required

      public ConfigBuilder required(String... keys)
      Add required keys validation 添加必填键验证
      Parameters:
      keys - required keys | 必填键
      Returns:
      this builder | 构建器
    • build

      public Config build()
      Build configuration 构建配置
      Returns:
      configuration instance | 配置实例
      Throws:
      OpenConfigException - if validation fails | 如果验证失败