【发布时间】:2020-09-02 02:43:30
【问题描述】:
我目前有 4 个 YAML 文件
application.yaml
application-local.yaml
application-test.yaml
application-dev.yaml
我假设application.yaml 充当default。
在其他3个文件中包含
spring:
profiles:
include: default
我的问题是我的application.yaml 很大
它包含分层的属性。
例如,
connection:
baseUrl: 'http://localhost:5000'
brokerUrl: 'http://localhost:8082'
...
workspaces:
a:
width: 45
height: 100
...
b:
width: 56
height: 125
...
我想将当前application.yaml 中的内容保存在子文件夹中的多个文件中。
假设connection.yaml 将包含
connection:
baseUrl: 'http://localhost:5000'
brokerUrl: 'http://localhost:8082'
...
workspace-a.yaml
将包含
workspaces:
a:
width: 45
height: 100
...
最后,workspace-b.yaml 将包含
workspaces:
a:
width: 56
height: 125
...
最后的结构会是这样的
/resources
application.yaml
application-local.yaml
application-test.yaml
application-dev.yaml
connection.yaml
/workspaces
a.yaml
b.yaml
我尝试将以下代码放入application.yaml,但没有成功。
spring:
profiles:
active: 'local'
include:
- connection.yaml
- workspaces/a.yaml
- workspaces/b.yaml
我也尝试过不同的格式,比如
- classpath:/workspaces/a.yaml
- ./workspaces/a.yaml
- file:./workspaces/a.yaml
请帮忙:'(
【问题讨论】:
-
您可以为此使用@PropertySource 注解。 Check this thread please
-
非常感谢,但文件非常大,会被分割成许多小文件,我不确定@PropertySource 在这种情况下是否有帮助。我有点想要一个干净漂亮的代码。您还有其他选择吗?
标签: java spring spring-boot yaml