【问题标题】:How do I use the Grails environment settings in micronaut client @Header?如何在 micronaut 客户端 @Header 中使用 Grails 环境设置?
【发布时间】:2020-03-12 21:37:38
【问题描述】:

我的 Grails application.yml 中有一个特定于环境的标头属性,配置如下:

environments:
    development:
        apiKey: 'foo'

如何在 @Header 中为 micronaut HTTP 声明式客户端使用此设置?

我试过了:

// property placeholder resolver seems to interprept 'apiKey' property as 'api-key'
@Header(name = 'apikey', value = '${api-key}')

但我收到了这个错误:

io.micronaut.context.exceptions.ConfigurationException: Could not resolve placeholder ${api-key}
    at io.micronaut.context.env.DefaultPropertyPlaceholderResolver$PlaceholderSegment.getValue(DefaultPropertyPlaceholderResolver.java:283)
    at io.micronaut.context.env.DefaultPropertyPlaceholderResolver.resolveRequiredPlaceholders(DefaultPropertyPlaceholderResolver.java:95)
    at io.micronaut.inject.annotation.EnvironmentAnnotationValue.lambda$new$0(EnvironmentAnnotationValue.java:48)
    at io.micronaut.core.annotation.AnnotationValue.getRawSingleValue(AnnotationValue.java:953)
    at io.micronaut.core.annotation.AnnotationValue.stringValue(AnnotationValue.java:482)
    at io.micronaut.core.annotation.AnnotationValue.stringValue(AnnotationValue.java:514)
    at io.micronaut.http.client.interceptor.HttpClientIntroductionAdvice.intercept(HttpClientIntroductionAdvice.java:207)

此外,并非所有环境都需要此标头(在这种情况下,它将设置为空字符串)。 @Header 会处理这个吗?还是我需要做一些不同的事情?

【问题讨论】:

    标签: spring-boot micronaut grails-4 micronaut-client


    【解决方案1】:

    Micronaut 不支持在 application.yml 中读取 environments.development。如果您将配置移至 application-development.yml,那么 Grails 和 Micronaut 都会读取它。

    【讨论】:

    • 谢谢!我会试试这个
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2022-11-20
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多