通过ConfigurationProperties注解读取Hashmap中的应用程序YAML属性

u4vypkhs  于 2022-10-01  发布在  Java
关注(0)|答案(1)|浏览(138)

给定应用程序YAML中的属性

acme:
  cloud:
    platform:
      incoming:
        webhook:
          headers:
            gitlab: X-Gitlab-Token

我已经添加了一个配置属性Bean

@ConfigurationProperties(prefix = "acme.cloud.platform.incoming.webhook")
public class WebhooksConsumerTokenHeadersProperties {

    private final Map<String, String> headers;

    public WebhooksConsumerTokenHeadersProperties(Map<String, String> headers) {
        this.headers = headers;
    }

    public String getTokenHeaderName(String app) {
        return headers.get(app);
    }
}

getTokenHeaderName("gitlab")方法返回NULL。

uujelgoq

uujelgoq1#

执行下列操作之一,而不是通过构造函数参数设置headers

1.在无参数构造函数或声明(private Map<String, String> headers = new HashMap<>();)中初始化它
1.为其创建setter方法。

您可能还需要一个getter方法getHeaders();如果您选择上面的选项#1,Spring将特别使用该方法。通常,类型安全的配置属性对象需要是具有默认构造函数和每个属性的有效setter/getter方法的有效Java Bean。

有关更多详细信息,请参阅Spring文档。

相关问题