我有一个第三方库,正在使用 important-config.yaml 文件进行配置。
prop1: value1
prop2: value2(need to override)
prop3: value3
为了引用它,我在 application.properties 中有下一行:
important-config=classpath:important-config.yaml
yaml 文件中有一个属性取决于应用程序运行的环境。所以我需要在启动时覆盖
这个属性。我怎样才能做到这一点?
最佳答案
我可以看到三种合适的变体来解决它:
- 直接覆盖 application.properties 中的属性。我认为包含 congig 的优先级更高(至少您可以在放置重要配置后尝试覆盖属性)。
- 您可以直接使用命令行覆盖选定的属性
java -jar app.jar --prop2="value2"
- 或者通过系统属性覆盖
java -Dprop2="value2"-jar app.jar
完整信息您可以在这里找到 http://www.baeldung.com/properties-with-spring
绝对所有属性都存储在 Spring Environment
对象中。您应该注意完整的变量名称,因为根据其他设置,您的 prop2 可能存储在 xxx.yyy.prop2 中。
关于java - 覆盖 YAML 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46403764/