【问题标题】:Spring boot externalize application configSpring Boot 外部化应用程序配置
【发布时间】:2021-12-16 08:12:58
【问题描述】:

我有一个用作微服务的 Spring Boot 应用程序。

这个应用在资源中有几个配置文件

  1. 适用于所有配置文件的通用配置

  2. 一个配置文件特定于每个配置文件(开发、测试、产品)

应用程序资源中的配置文件一切正常。

现在我想将配置文件特定的配置文件外部化为外部文件。

我曾经用过这种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)中,我使用完整配置应用程序启动并运行,但如果我使用配置文件特定文件的内容,它就不起作用。

您能否建议我如何使用可以与应用程序的通用配置文件合并的外部配置文件?

【问题讨论】:

标签: java spring-boot configuration microservices


【解决方案1】:

我希望您将配置文件特定的文件命名为 application-qa.yml 等。一旦您这样做,您可以将配置位置指向该文件,并在您的 docker 命令中提及 spring 活动配置文件 java -jar -Dspring.profiles.active=qa

【讨论】:

  • 谢谢,但是它将如何帮助我实现目标:将外部配置文件与应用程序的内部配置文件合并?
猜你喜欢
  • 2015-05-20
  • 2019-08-17
  • 2021-10-07
  • 2017-11-04
  • 2018-06-20
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多