首页 > 解决方案 > 在spring注释中将值传递给占位符

问题描述

我已经从 api 规范生成了一个客户端接口

@FeignClient(
    name = "${testController.name:testController}",
    url = "${testController.url:https://api.dev.foo}",
    configuration = {ClientConfiguration.class}
)
public interface TetsControllerApiClient extends TestControllerApi {
}

如何覆盖它的name, 或url属性?将不胜感激。谢谢。

标签: javaspringspring-bootspring-cloudspring-cloud-feign

解决方案


这是从属性文件(application.ymlapplication.properties)加载的。

该表示法${testController.name:testController}是一种 Spring 表达式语言,它表示以下内容:

  • 从属性中加载testController.name并读取其值。
  • 如果未找到,testController请改为使用默认值。

application.properties文件应如下所示:

testController.name=myTestController

覆盖该值,您可以使用 Spring 配置文件。使用配置文件归档application-local-dev.properties并启动应用程序local-dev


推荐阅读