我有带有application.yml的spring boot应用程序。 application.yml的内容
spring:
profiles:
active: default,private
integrations:
ecom:
api-url: http://localhost:8080/com
application-private.yml的内容
integrations:
ecom:
api-url: http://testenv:8080/com
根据我的理解,集成:ecom:api-url从application-private.yml加载,即使默认配置文件也具有相同的属性。
如果两个配置文件处于活动状态,该属性是否会在订单中加载和使用?
我的订单: -Dspring.profiles.active = “默认情况下,私有”
先谢谢。
答案 0 :(得分:0)
在这种情况下,首先会加载 application.yml 中的所有属性,然后 application-private.yml 将根据个人资料加载,从而覆盖您的属性 application.yml
答案 1 :(得分:0)
对于您的示例,以下是 Spring 获取属性值的优先顺序(从高到低):
application-private.yml
在外部提供了您的 jar 文件(例如,通过 spring-cloud-config)application.yml
提供外部您的 jar 文件(application.yml 相当于 application-default.yml)application-private.yml
提供了内部您的 jar 文件application.yml
提供了内部您的 jar 文件因此,如果您在 jar 文件中有 application-private.yml 和 application.yml,则前者中的属性会覆盖后者中的属性。
但是,如果 application-private.yml 在 jar 内而 application.yml 在外,后者将覆盖前者。