application.yaml、application-dev.yaml和application-local.yaml的区别

在Spring Boot应用中,application.yaml 文件是最基础的配置文件,它包含了应用程序运行时的基本配置信息。Spring Boot支持多种环境配置,通过不同的配置文件来适应开发、测试、生产等不同的环境需求。

application.yaml 文件通常用于默认配置,即当没有特定环境配置文件存在时,会使用这个文件中的配置。

而 application-dev.yaml 和 application-local.yaml 这样的文件则是针对特定环境的配置文件。这里的 -dev 和 -local 分别代表了开发环境和本地环境。Spring Boot会自动加载这些带有环境后缀的配置文件,如果它们存在于类路径中。

Spring Boot会根据当前激活的环境(由 spring.profiles.active 属性定义)来选择加载相应的配置文件。例如,如果你的 application.properties 或者 application.yaml 中有如下设置:

spring:
  profiles:
    active: dev

那么 Spring Boot 将会加载 application-dev.yaml 文件,覆盖 application.yaml 中的同名属性。

如果同时存在多个配置文件,比如 application.yaml, application-dev.yaml, application-local.yaml,并且你设置了 spring.profiles.active=dev,那么 application-dev.yaml 将会优先于 application.yaml 被加载,而 application-local.yaml 只有在 spring.profiles.active=local 的情况下才会被加载。

总结一下

这些配置文件的区别主要在于它们的使用场景和优先级:

  • application.yaml是主配置文件,定义了所有环境通用的配置。
  • application-dev.yaml是针对开发环境的特定配置,覆盖了通用配置中的部分内容。
  • application-local.yaml是用于开发者本地环境的特定配置文件,通常不被包含在版本控制中。
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot 应用中,被"---"分割开的 YAML 文件会按照它们在配置文件中出现的顺序依次被加载。在加载配置文件时,Spring Boot 会将多个 YAML 文档合并为一个大的 YAML 文档,然后解析后加载到应用中。 在加载配置文件时,Spring Boot 会按照以下顺序加载配置文件: 1. 首先,会加载默认的配置文件。默认情况下,Spring Boot 会加载 classpath:/application.yml 或 classpath:/application.properties 文件。 2. 然后,会加载激活的配置文件。Spring Boot 会根据应用所处的环境自动激活对应的配置文件。例如,如果应用运行在开发环境,那么 Spring Boot 会自动加载 application-dev.yml 或 application-dev.properties 文件。 3. 最后,会加载额外的配置文件。可以通过 spring.config.additional-location 属性来指定额外的配置文件路径。这些配置文件也可以包含多个 YAML 文档。 在加载配置文件时,如果有相同的属性,后面加载的配置文件会覆盖先加载的配置文件中的属性。因此,如果需要覆盖默认的配置文件中的属性,可以在激活的配置文件或额外的配置文件中重新定义这些属性。 需要注意的是,如果一个配置文件中包含多个 YAML 文档,那么只有第一个 YAML 文档的配置会被加载。如果需要加载其他 YAML 文档,可以使用 Spring Boot 提供的 YamlPropertiesFactoryBean 来手动解析 YAML 文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在奋斗的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值