首页 > 解决方案 > Spring Boot,来自配置的 Feign 静态标头

问题描述

我在从我的 FeignClient 的 application.yml 文件中获取 API 密钥时遇到了一些问题。

@FeignClient(name="CRM-api", url="${api_url}", configuration= <myConfiguration.class>)
@Headers({"Authorization: ${api_key}"})
public interface CRMAPIClient {

甚至可以在 Headers 注释中使用占位符值吗?我也厌倦了在每个端点上设置标头,但它仍然无法检索 api-key 的配置。我设法得到 ${api_url} 但不是 ${api_key} 值

// 莱纳斯

标签: springspring-bootnetflix-feign

解决方案


请删除@Headers 中的“$”符号

是的,您可以通过以下方式发送它-

@FeignClient(name="email-service", url ="${email.url}")
public interface EmailService 
{

    @RequestMapping(method = RequestMethod.POST,value="/send_mail", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)                                                                                   
    @Headers({"Content-Type: application/x-www-form-urlencoded","x-auth-id: {email.xauthid}"})
    void sendData(@RequestBody Map<String, ?> formParams);
}



In application.properties of define the configuration
email.url=<<url-for-sending-mail>>
email.xauthid=110


推荐阅读