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

相关推荐
石山代码7 分钟前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事21 分钟前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海26 分钟前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠1 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
德思特2 小时前
从 Dify 配置页理解 RAG 的重要参数
java·人工智能·llm·dify·rag
YOU OU2 小时前
Spring IoC&DI
java·数据库·spring
один but you3 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言
是码龙不是码农3 小时前
ThreadPoolExecutor 7 个核心参数详解
java·线程池·threadpool
这是程序猿3 小时前
Spring Boot自动配置详解
java·大数据·前端
MY_TEUCK4 小时前
【Java 后端 | Nacos 注册中心】微服务治理原理、选型与注册发现实战
java·开发语言·微服务