如何在 Spring boot 中从 application.yaml 创建记录

问题描述 投票:0回答:1

我们正在使用 Spring Boot 创建 API,并且有一些配置将在下面的 docker 容器广告中作为 env 提供:

config:
   host: ${HOST}
   apiKey: ${API_KEY}

我的服务类中需要此主机和 API 密钥才能进行外部 API 调用。

有没有办法在 Spring boot 中直接从 application.yaml 创建

Record
类,如下所示?

public record Config(String host, String apiKey){}
java spring spring-boot record
1个回答
1
投票

在主类上添加

@ConfigurationPropertiesScan

像这样创建类,这应该可以工作

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

或者如果您还想要默认设置

@ConfigurationProperties(value = "config")
public record Config(String host, String apiKey) {

    @ConstructorBinding
    public Config(String host, String apiKey) {
        this.host = Optional.ofNullable(host).orElse("localhost");
        this.apiKey = Optional.ofNullable(apiKey).orElse("secret");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.