我有一个包含application.yml的spring boot应用程序。
application.yml内容:
spring:
profiles:
active: default,private
integrations:
ecom:
api-url: http://localhost:8080/com
应用程序的内容-private.yml:
integrations:
ecom:
api-url: http://testenv:8080/com
根据我的理解,integrations:ecom:api-url是从application-private.yml加载的,即使默认概要文件也有相同的属性。
如果两个配置文件处于活动状态,是否将按照指定配置文件的顺序加载和使用属性?
我的订单:
-Dspring.profiles.active="default,private"
提前感谢。
是的,配置文件将根据您如何确定/定义配置文件的系列加载。以下是它如何使用示例:
>
你有application.yml,并且你已经将你的url定义为:“https://anish.com”现在,在相同的YML配置中,你正在将配置文件加载为“prod”,因此它尝试加载“application-prod.yml”。
在您的"application-prod.yml"文件中,您的url被提到为"https://panthi.com",那么在这种情况下,您的url值将被"https://panthi.com"覆盖。
因此,请确保您正在尝试根据要部署的环境匹配URL。如果您在生产环境中加载多个配置文件,请确保最后一个配置文件包含您需要的所有内容,或者确保您没有覆盖任何配置文件中的任何属性(除非需要)
对于您的示例,以下是Spring获取属性值的优先顺序(从最高优先级到最低优先级):
应用程序。yml
在jar文件之外提供(application.yml相当于applicationdefault.yml)应用程序。jar文件中提供的yml
因此,如果 jar 文件中有 application-private.yml 和 application.yml,则前者中的属性将覆盖后者中的属性。
但是,如果应用程序是私有的。yml在jar中,但在应用程序中。yml在外面,后者将覆盖前者。
请参阅有关外部属性优先级的官方文档。
在这种情况下,将首先加载application.yml中的所有属性,然后根据配置文件加载application-private.yml,从而从application.yml覆盖您的属性
在spring boot中,我有以下配置文件:application-email.yaml
我们使用的是Spring boot。我们有三个环境、、。我们当前的配置结构 开发 同样,对于每个环境,我们都有一个yml和属性文件。经过一年的开发,现在配置文件的单个yml文件变成了一个大型单片配置文件。 对于下面这样的配置文件,可以有多个配置文件吗?
寻找在Springboot应用程序中配置多个配置文件特定属性文件的最佳方法。下面是一个例子: -资源 · --application.properties · · · · · --德夫 --application-dev.properties --ldap-dev.properties --Quartz-Dev.Prope
各位, 在Ant(Jenkins)中构建我们的Android应用程序时,我们遇到了一个属性范围问题。这打破了我们的emma单元测试覆盖率。 我们使用全局构建。xml文件,包含以下行: 如您所见,它在单个项目中启动目标。我们使用构建。 在构建过程中,我打印emma的值。已启用,由emma目标设置为true。然而,当Ant达到调试目标时,emma。已启用的不再设置。这导致我们的测试在没有启用emma覆
在我的应用程序中,我有以下属性文件: application.properties application-prod.properties 在里面我有同样的财产 Spring数据源。password=my dev password#用于默认的 spring。数据源。password=${PROD_DATABASE_password}#用于PROD文件 在服务器上,我像这样运行应用程序: java-
我想在重新启动时通过外部配置文件覆盖Spring Boot应用程序中的几个配置。 我正在使用的内容:java-jar-dspring.profiles.active=${ENV}my-application.jar 这将在应用程序启动期间加载特定于配置文件的应用程序属性。让我们假设我有一个问题,我需要更改我的应用程序中的配置,我不想重新构建我的应用程序与更改的属性,我想要实现的是,我提供一个外部属