欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > Spring Boot 配置文件的加载顺序

Spring Boot 配置文件的加载顺序

2024/12/26 18:48:20 来源:https://blog.csdn.net/weixin_43564923/article/details/144720265  浏览:    关键词:Spring Boot 配置文件的加载顺序

Spring Boot 中有多个配置文件,主要有:

bootstrap.yml 或 bootstrap.properties:

主要用于 Spring Cloud 应用中,配置应用启动时需要的参数,通常包含应用的环境配置、服务发现、配置中心等。
bootstrap.yml 会在 Spring Boot 应用的 上下文初始化之前加载。它用于初始化 Spring 环境和配置,特别是在 Spring Cloud 中,它会读取配置中心的相关配置。

application.yml 或 application.properties:

这是 Spring Boot 中默认的配置文件,通常用于定义应用的业务逻辑配置、数据库连接、日志设置等。
application.yml 会在 bootstrap.yml 之后加载。
配置加载的优先级与覆盖规则
在 Spring Boot 中,配置是通过 层叠式(hierarchical)方式加载的,也就是说,后加载的配置文件会覆盖之前加载的配置。

具体的加载顺序和覆盖规则是:

bootstrap.yml(或 bootstrap.properties):首先加载,适用于 Spring Cloud 环境。
application.yml(或 application.properties):紧接着加载,适用于 Spring Boot 默认配置。
后加载的配置会覆盖先加载的配置,所以如果 bootstrap.yml 和 application.yml 中有相同的配置项(例如 jdbc 配置),则 application.yml 中的配置会覆盖 bootstrap.yml 中的配置。

例子
假设你有以下配置:

bootstrap.yml

spring:datasource:url: jdbc:mysql://localhost:3306/db1username: user1password: pass1

application.yml

spring:datasource:url: jdbc:mysql://localhost:3306/db2username: user2password: pass2

在这种情况下,application.yml 中的 datasource 配置会覆盖 bootstrap.yml 中的 datasource 配置。也就是说,应用在启动时,数据库连接的 URL 将是 jdbc:mysql://localhost:3306/db2,而不是 jdbc:mysql://localhost:3306/db1。

关键总结
bootstrap.yml 会先加载,通常用于 Spring Cloud 的配置。
application.yml 会后加载,覆盖 bootstrap.yml 中的相同配置。
后加载的配置会覆盖先加载的配置,这是 Spring Boot 配置的常见规则。
因此,后加载的配置(如 application.yml)会覆盖先加载的配置(如 bootstrap.yml)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com