首页 > 解决方案 > Spring Boot 导入额外的无扩展属性

问题描述

我正在使用 Kubernetes 运行我的 Spring Boot 应用程序。架构的一部分涉及将机密作为文件卷安装在/opt/config.

$ ls -l
SECRET_1
SECRET_2
SECRET_3

每个文件都包含.properties类似的语法。( key=value)

我一直在尝试让 Spring Boot 根据文档加载这些spring.config.import=file:/etc/config/myconfig[.yaml]

但是我无法让它工作,我的完整命令是:java -Dspring.config.location=file:./opt/application.properties -Dspring.config.additional-location=file:./opt/config/*[.properties] -jar target/test.war --debug --server.port=8080

文件已./opt/application.properties正确加载。

我还尝试重命名所有文件以包含.properties

$ ls -l
SECRET_1.properties
SECRET_2.properties
SECRET_3.properties

并通过加载它java -Dspring.config.location=file:./opt/application.properties -Dspring.config.import=file:./opt/config/*/ -jar target/test.war --debug --server.port=8080,但是这也没有导入任何属性./opt/config

我现在已经阅读了数十次文档,这应该可以正常工作,但事实并非如此。我错过了什么明显的东西吗?为什么它不加载下的任何文件./opt/config

标签: javaspringspring-boot

解决方案


我认为问题在于您指定的位置是 spring 查找 application.properties、application.yml 和配置文件变体(application-prod.properties 等)的位置。我认为您最好以编程方式将所有文件加载到配置的位置,可能会提供一些想法。


推荐阅读