Package cloud.opencode.base.config.bind


package cloud.opencode.base.config.bind
Configuration Binding Package 配置绑定包

This package provides configuration binding capabilities for mapping configuration values to POJOs and Records.

此包提供配置绑定能力,用于将配置值映射到POJO和Record。

Features | 主要功能:

  • POJO binding with reflection - 反射POJO绑定
  • JDK 25 Record binding - JDK 25 Record绑定
  • Nested configuration support - 嵌套配置支持
  • Type-safe property mapping - 类型安全的属性映射
  • Annotation-based configuration - 基于注解的配置

Annotations | 注解:

  • ConfigProperties - Mark class with configuration prefix - 标记类的配置前缀
  • NestedConfig - Mark nested configuration field - 标记嵌套配置字段

POJO Binding Example | POJO绑定示例:

@ConfigProperties(prefix = "database")
public class DatabaseConfig {
    private String url;
    private String username;
    private String password;
    private int maxPoolSize = 10;
    private Duration connectionTimeout = Duration.ofSeconds(30);

    @NestedConfig
    private PoolConfig pool;
    // getters and setters...
}

DatabaseConfig config = OpenConfig.bind("database", DatabaseConfig.class);

Record Binding Example | Record绑定示例:

record DatabaseConfig(
    @Required String url,
    @Required String username,
    @Required String password,
    @DefaultValue("10") int maxPoolSize,
    @DefaultValue("30s") Duration connectionTimeout,
    PoolConfig pool
) {}

DatabaseConfig config = OpenConfig.bind("database", DatabaseConfig.class);

Property Name Conversion | 属性名转换:

Field: maxPoolSize  →  Config key: max-pool-size (kebab-case)
Field: connectionTimeout  →  Config key: connection-timeout
Since:
JDK 25, opencode-base-config V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Class
    Description
    Configuration Binder 配置绑定器
    Configuration Properties Annotation 配置属性注解
    Nested Configuration Annotation 嵌套配置注解
    Record Configuration Binder for JDK 25 Records JDK 25 Record的配置绑定器