【问题标题】:Passing value to placeholder in spring annotation在spring注释中将值传递给占位符
【发布时间】:2020-08-21 07:10:30
【问题描述】:

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

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

如何覆盖其上的nameurl 属性?将不胜感激。谢谢。

【问题讨论】:

    标签: java spring spring-boot spring-cloud spring-cloud-feign


    【解决方案1】:

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

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

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

    application.properties 文件应如下所示:

    testController.name=myTestController
    

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

    【讨论】:

    • 这行得通,将其添加到您的属性和提到的其他答案中。
    【解决方案2】:

    您可以在项目的 application.properties 文件中覆盖它们

    testController.name = "myController"
    testController.url = "some url"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      相关资源
      最近更新 更多