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应用中各自扮演着重要的角色,它们共同协作以确保应用程序能够正确、高效地启动和运行。

相关推荐
神明不懂浪漫4 分钟前
【第七章】Java中的常用类
java·开发语言·前端·经验分享·笔记
码兄科技8 小时前
实战:基于Spring Boot + UniApp的地理信息小程序开发
spring boot·后端·uni-app
Jelena157795857929 小时前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
神明不懂浪漫10 小时前
【第五章】Java中的继承与多态
java·开发语言
AI多Agent协作实战派12 小时前
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时
java·前端·bug
gaolei_eit12 小时前
Java+Ai+vue
java·spring·maven
qq_25183645712 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
LayZhangStrive12 小时前
JUC相关的函数、注解、变量杂记
java·面试·多线程·juc
未秃头的程序猿13 小时前
给公司做了个AI客服Agent,用的Spring AI 1.0,3天上线领导拍板了
java·后端·ai编程
曹牧13 小时前
Eclipse 批量文本替换
java·ide·eclipse