You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中如何从application.yaml直接创建Record类?

Spring Boot中用Java Record绑定配置的可行性

完全可以用Java Record来绑定你的Spring Boot配置,这还是Spring Boot 2.6版本开始官方支持的特性,刚好适配配置类这种不可变、仅需承载数据的场景。

具体实现步骤:

  1. 给你的Record类加上配置绑定相关注解,指定配置前缀:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "config")
public record Config(String host, String apiKey) {}

这里要注意:Record的参数名要和application.yaml里的配置键一一对应(比如yaml里的apiKey对应Record的apiKey参数),Spring会自动完成映射。

  1. 启用配置属性绑定(可选):
    如果你的主类没有自动扫描到这个Record,就在Spring Boot启动类上添加@EnableConfigurationProperties(Config.class)注解,显式启用该配置类的绑定。

  2. 在服务类中注入并使用:

import org.springframework.stereotype.Service;

@Service
public class ExternalApiService {
    private final Config config;

    // 推荐用构造注入方式
    public ExternalApiService(Config config) {
        this.config = config;
    }

    public void invokeExternalApi() {
        // 直接通过Record的访问器方法获取配置值
        String targetHost = config.host();
        String accessKey = config.apiKey();
        // 这里编写调用外部API的业务逻辑
    }
}

额外说明:

  • 环境变量替换无需额外处理:Spring Boot会自动把application.yaml里的${HOST}和${API_KEY}替换为Docker容器中的对应环境变量值。
  • 版本要求:必须使用Spring Boot 2.6及以上版本,旧版本不支持Record作为配置属性载体。
  • Record的不可变性:配置一旦加载就无法修改,刚好符合配置数据的特性,避免意外篡改。

内容的提问来源于stack exchange,提问作者Nitin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 22:16:02