gpt4 book ai didi

spring-boot - 合并来自多个 spring-boot YAML 文件的列表

转载 作者:行者123 更新时间:2023-12-04 21:34:48 27 4
gpt4 key购买 nike

是否可以从多个用 YAML 编写的 spring-boot 配置文件中组合相同元素的列表?

例子:
postgres.yml包含我的 postgres 数据库信息。它还包含我的迁移脚本的飞行路径位置:

---
flyway:
locations:
- flyway/migrations/postgres

与我的 oracle 迁移相同:
---
flyway:
locations:
- flyway/migrations/oracle

现在,如果我想用测试数据启动我的应用程序,我想包括我的 test_data目录也是如此(这些数据适用于 postgres 和 oracle):
---
flyway:
locations:
- flyway/test_data

当我使用事件配置文件运行应用程序时 postgres,testdata不会加载迁移,因为位置条目被测试数据文件覆盖。

对于这个设置,我可以创建四个配置文件来运行每个带有和不带有测试数据的数据库,但是如果我有四个不同的数据库和三组测试数据,我该怎么办?

最佳答案

不幸的是,如 Spring docs 中所述,这目前是不可能的。如果您提前知道配置文件名称集,您可能可以通过创建单独的列表来解决这个问题,以配置文件名称为前缀,然后在您的 bean 中添加将它们合并到最终列表中的代码。该代码只会遍历所有已知的配置文件名称前缀,如果配置文件未处于事件状态,则该列表将为空。

不幸的是,如果您不拥有 bean ,这似乎更难,例如在您的 Flyway 案例中。不过还是有可能的。

关于spring-boot - 合并来自多个 spring-boot YAML 文件的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com