【问题标题】:Best way to use defaults values from application.yaml in spring services在 Spring 服务中使用 application.yaml 中的默认值的最佳方法
【发布时间】:2019-05-24 10:43:15
【问题描述】:

我有 3 个服务:FierstServiceSecondServiceThirdService

每个服务使用来自 apllication.yaml 的 2 个值 - firstValuesecondValue

我在每个服务中都有这个结构:

@Value("${defaults.first}")
private String first;

@Value("${defaults.second}")
private String second;

这些变量的定义被项目弄脏了。如果我改变:

defaults:
 second: foo

global:
 second: foo

在我的application.yaml - 我需要在所有地方更改它。

我的想法是创建一项服务 - DefaultsService 和从 yaml 到此服务的值。并将此服务注入到我使用它的每个服务中。

但我会对这些服务产生新的过度依赖。

哪种方式更好?

【问题讨论】:

  • 您多久重命名这些属性?我认为我们不会经常更改属性。话虽如此,当属性更改时,您也可以更新相应的服务。我没有看到创建 DefaultsService 的案例

标签: spring spring-boot yaml


【解决方案1】:

我不确定我是否完全理解您的要求,因为它不是 100% 清楚,但如果我理解正确,您可以使用如下别名

global.second=${defaults.second}

在您的代码中使用 global.second,然后您可以将您的应用程序文件更改为与您的服务无关的任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2015-06-05
    • 2017-10-14
    • 2011-06-07
    • 1970-01-01
    相关资源
    最近更新 更多