Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 覆盖多个弹簧活动轮廓中的特性值_Spring_Spring Boot_Spring Profiles - Fatal编程技术网

Spring 覆盖多个弹簧活动轮廓中的特性值

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引导应用程序,它有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/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)
  • jar文件中提供的
    application private.yml
  • jar文件中提供了
    application.yml
  • 因此,如果jar文件中有application-private.yml和application.yml,则前者中的属性将覆盖后者中的属性

    但是,如果application-private.yml在jar内部,而application.yml在外部,则后者将覆盖前者


    请参见

    有关您的示例,以下是Spring获取属性值的优先级顺序(从最高优先级到最低优先级):

  • application private.yml
    在jar文件外部提供(例如,通过spring云配置)
  • application.yml
    在jar文件外部提供(application.yml相当于application default.yml)
  • jar文件中提供的
    application private.yml
  • jar文件中提供了
    application.yml
  • 因此,如果jar文件中有application-private.yml和application.yml,则前者中的属性将覆盖后者中的属性

    但是,如果application-private.yml在jar内部,而application.yml在外部,则后者将覆盖前者


    请看

    这似乎是一件非常简单的事情,您可以测试并找出。是否发生了一些事情,让您相信它们是按这种顺序读取的?为什么不尝试一下……为了更清楚,请从application.yml中删除该属性。如果它是特定于配置文件的属性,为什么不将其放入应用程序-{profile}.yml only?我尝试并测试了它。属性正在从application-private.yml.Thanks加载。这似乎是一件非常简单的事情,您可以测试并发现。是否发生了一些事情,使您相信它们是按顺序读取的?为什么不尝试一下……更清楚地从应用程序中删除属性。y如果它是特定于配置文件的,为什么不把它放在应用程序-{profile}仅.yml?我尝试并测试了它。属性是从application-private.yml加载的。谢谢。实际上,这取决于yml文件是从启动应用程序jar文件内部还是外部加载的。实际上,这取决于yml文件是从启动应用程序jar文件内部还是外部加载的。