【发布时间】:2021-12-16 08:12:58
【问题描述】:
我有一个用作微服务的 Spring Boot 应用程序。
这个应用在资源中有几个配置文件
-
适用于所有配置文件的通用配置
-
一个配置文件特定于每个配置文件(开发、测试、产品)
应用程序资源中的配置文件一切正常。
现在我想将配置文件特定的配置文件外部化为外部文件。
我曾经用过这种Dockerfile
(带有 --spring.config.location 选项)
FROM adoptopenjdk/openjdk11:alpine-jre
ADD /revise.jar /revise.jar
ADD /application.yml /application.yml
ENTRYPOINT ["java", "-jar", "/revise.jar", "--spring.config.location=file:/application.yml"]
或 (带有 --spring.config.import 选项)
FROM adoptopenjdk/openjdk11:alpine-jre
ADD /revise.jar /revise.jar
ADD /application.yml /application.yml
ENTRYPOINT ["java", "-jar", "/revise.jar", "--spring.config.import=file:/application.yml"]
但外部配置文件不会与普通配置文件合并。换句话说,如果在外部化配置文件(application.yml)中,我使用完整配置应用程序启动并运行,但如果我使用配置文件特定文件的内容,它就不起作用。
您能否建议我如何使用可以与应用程序的通用配置文件合并的外部配置文件?
【问题讨论】:
-
"spring.config.location 现在覆盖默认值而不是添加到它。您需要使用 spring.config.additional-location 来保持默认值。"
标签: java spring-boot configuration microservices