Spring 覆盖多个弹簧活动轮廓中的特性值
我有一个spring引导应用程序,它有application.yml application.yml的内容:Spring 覆盖多个弹簧活动轮廓中的特性值,spring,spring-boot,spring-profiles,Spring,Spring Boot,Spring Profiles,我有一个spring引导应用程序,它有application.yml 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/co
spring:
profiles:
active: default,private
integrations:
ecom:
api-url: http://localhost:8080/com
application-private.yml的内容:
integrations:
ecom:
api-url: http://testenv:8080/com
据我所知,integrations:ecom:api url是从application-private.yml加载的,尽管默认配置文件也具有相同的属性
如果两个配置文件处于活动状态,是否会按照指定配置文件的顺序加载和使用属性
我点的菜:
-Dspring.profiles.active="default,private"
提前感谢。在这种情况下,将首先加载应用程序.yml中的所有属性,然后加载应用程序专用。yml将根据配置文件加载,因此在这种情况下,将覆盖应用程序.yml中的属性,application.yml中的所有属性将首先加载,然后根据配置文件加载application private.yml,从而覆盖application.yml中的属性。例如,以下是Spring获取属性值的优先顺序(最高至最低优先级):
application private.yml
在jar文件外部提供(例如,通过spring云配置)application.yml
在jar文件外部提供(application.yml相当于application default.yml)application private.yml
application.yml
请参见有关您的示例,以下是Spring获取属性值的优先级顺序(从最高优先级到最低优先级):
application private.yml
在jar文件外部提供(例如,通过spring云配置)application.yml
在jar文件外部提供(application.yml相当于application default.yml)application private.yml
application.yml
请看这似乎是一件非常简单的事情,您可以测试并找出。是否发生了一些事情,让您相信它们是按这种顺序读取的?为什么不尝试一下……为了更清楚,请从application.yml中删除该属性。如果它是特定于配置文件的属性,为什么不将其放入应用程序-{profile}.yml only?我尝试并测试了它。属性正在从application-private.yml.Thanks加载。这似乎是一件非常简单的事情,您可以测试并发现。是否发生了一些事情,使您相信它们是按顺序读取的?为什么不尝试一下……更清楚地从应用程序中删除属性。y如果它是特定于配置文件的,为什么不把它放在应用程序-{profile}仅.yml?我尝试并测试了它。属性是从application-private.yml加载的。谢谢。实际上,这取决于yml文件是从启动应用程序jar文件内部还是外部加载的。实际上,这取决于yml文件是从启动应用程序jar文件内部还是外部加载的。