在Spring Services中使用application.yaml中的默认值的最佳方法

时间:2019-05-24 10:43:16

标签: spring spring-boot yaml

我有3个服务:FierstServiceSecondServiceThirdService

每个服务使用apllication.yaml中的2个值- firstValue secondValue

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

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

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

这些变量的定义已在项目中涂抹。如果我更改:

defaults:
 second: foo

global:
 second: foo

在我的application.yaml中-我需要在所有位置进行更改。

我想到了创建一个服务-DefaultsService和从yaml到该服务的值的想法。然后将此服务注入我使用它的每个服务。

但是我将对这些服务有新的过度依赖。

哪种方法更好?

1 个答案:

答案 0 :(得分:0)

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

global.second=${defaults.second}

在代码中使用global.second,之后就可以将与服务无关的应用程序文件更改为所需的内容。