我有一个带有应用程序的弹簧启动应用程序。
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即使默认配置配置文件也具有相同的属性。
如果两个配置文件处于活动状态,是否将属性加载并按照指定的顺序使用?
我的订单:
-Dspring.profiles.active="default,private"
预先感谢。
在您的示例中,以下是春季获得属性价值(最高到最低优先级(的优先顺序:
-
application-private.yml
提供外部 您的jar文件(例如,通过spring-config( -
application.yml
提供的外部 您的jar file(application.yml等于application-default.yml( -
application-private.yml
提供的 您的jar文件 -
application.yml
提供的 您的jar file
因此,如果您在JAR文件中具有application-private.yml和application.yml,则在后者中以前的覆盖属性中的属性。
但是,如果application-private.yml在jar内部,但是application.yml在外面,后者将覆盖前者。
请参阅有关外部财产优先级的官方文档。
在这种情况下,将首先加载> application.yml 中的所有属性。
是的,根据您确定/定义配置文件的系列,配置文件将被加载。这是它的工作方式:
-
您有应用程序。现在,从同一YML配置中,您正在加载" prod&quot",因此它试图加载" application-prod.yml.yml"。
-
在您的" application-prod.yml"中文件,您将URL提到为" https://panthi.com",然后在这种情况下,您的URL值将被" https://panthi.com&quot"覆盖。
因此,请确保您试图根据要部署的环境匹配URL。如果您在生产中加载了多个配置文件,请确保最后一个配置文件具有所需的一切,或者确保您不会在任何配置文件中覆盖任何属性(除非需要(