application.yml和bootstrap.yml

参考文章 https://blog.csdn.net/Mrxiao_bo/article/details/134459827?fromshare=blogdetail\&sharetype=blogdetail\&sharerId=134459827\&sharerefer=PC\&sharesource=qq_46023827\&sharefrom=from_link

在Java的Spring Boot和Spring Cloud应用中,application.yml和bootstrap.yml是两个重要的配置文件,它们各自承担着不同的配置职责。

application.yml

复制代码
作用:application.yml文件主要用于配置应用程序级别的参数,这些参数通常是应用程序特有的,用于定义后续各个模块中需使用的公共参数等。它提供了简便的方式来配置Spring Boot应用程序的各种组件,如数据源、数据库、缓存、邮件服务等。

特点:
    支持YAML格式,这是一种直观的数据序列化格式,支持列表、映射、字符串、整数、浮点数等数据结构。
    允许配置应用程序的各种属性,如服务器端口、数据库连接、缓存策略等。
    支持不同环境的配置,可以为开发环境、测试环境和生产环境创建不同的配置文件。
    当与Spring Cloud Config结合使用时,application.yml里面定义的文件可以实现动态替换。

bootstrap.yml

复制代码
作用:bootstrap.yml文件主要用于应用程序上下文的引导阶段,加载应用程序上下文之前的外部配置文件。这些配置通常在应用程序启动的早期阶段就需要用到,如连接到Spring Cloud Config Server的配置、加密/解密信息、连接到外部数据库的配置等。

特点:
    加载顺序优先于application.yml,这意味着bootstrap.yml中的配置将首先被加载。
    用于定义系统级别的参数配置,这些参数通常是固定或较少变动的,如数据库连接、消息队列连接等。
    与Spring Cloud Config结合使用时,bootstrap.yml中配置的信息(如Config Server的地址)可以帮助应用程序从Config Server加载动态的配置信息,实现配置的外部化和集中管理。
    一旦bootstrap.yml被加载,其内容通常不会被覆盖,具有较高的优先级。

加载顺序与覆盖规则

复制代码
在同一目录下,bootstrap.yml先加载,application.yml后加载。
如果application.yml与bootstrap.yml存在相同的配置项,bootstrap.yml中定义的属性将优先生效。但是,application.yml里面的内容可以动态替换(在Spring Cloud Config等场景下)。

典型应用场景

复制代码
当使用Spring Cloud Config Server(或Spring Cloud Alibaba Nacos)配置中心时,通常需要将spring.application.name和配置中心相关的URI(如spring.cloud.config.server.git.uri或spring.cloud.nacos.config)配置在bootstrap.yml中,以便在应用程序启动时首先加载这些配置,从而连接到外部的配置中心并加载动态的配置信息。

综上所述,application.yml和bootstrap.yml在Java的Spring Boot和Spring Cloud应用中各自扮演着重要的角色,它们共同协作以确保应用程序能够正确、高效地启动和运行。

相关推荐
悟天特斯35 分钟前
安防一体化:从“各管各的“到“全局联动“
java·大数据·网络·人工智能·物联网
70后写java的老码农44 分钟前
Spring Boot 3.x + ShardingSphere 5.x + MyBatis-Plus 3.x:订单分库分表实战(含两个踩坑记录)
java
霸道流氓气质1 小时前
AI 翻译插件:翻译记忆级联复用、术语混合检索与结构化质量门禁的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
斯维赤1 小时前
OCR到底是接入第三方API 还是自己封装?
java·ocr
码智社1 小时前
Redis 哨兵模式详解:从原理到生产实践
java·redis
救救孩子把1 小时前
结构化输出为何“格式正确、答案错误”?JSON Schema 的能力边界
android·java·json·agent·agent服务
猿究院--Cu-Sn合金1 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
silvamux_2 小时前
微头条爆款体平台适配实测:把交付要求变成可计算的指标
java·线性代数·算法·决策树·矩阵
论文复现现场2 小时前
DeepSeek V4.1 Flash 和 V4 Pro 有什么区别?API 价格、性能与迁移建议
java·服务器·人工智能·python·大模型api·deepseek·deepseek v4.1
郭小李2 小时前
转发与重定向
java·服务器·数据库