在 Spring Boot 项目中,bootstrap.yml 和 application.yml文件区别

在 Spring Boot 项目中,bootstrap.ymlapplication.yml 是两个常用的配置文件,它们的作用和加载顺序有所不同。以下是它们的详细说明:


1. bootstrap.yml

  • 作用

    • bootstrap.yml 是 Spring Cloud 项目中的配置文件,用于加载应用程序启动阶段的配置。
    • 它优先于 application.yml 加载,通常用于配置应用程序上下文的初始属性。
    • 常用于配置 Spring Cloud 相关的组件,例如:
      • Spring Cloud Config(远程配置中心)
      • Nacos(服务发现和配置管理)
      • ConsulEureka(服务注册与发现)
  • 加载时机

    • 在应用程序启动时,bootstrap.yml 会最先被加载。
    • 它由 bootstrap 上下文加载,优先级高于 application.yml
  • 典型配置

    spring:application:name: my-service  # 应用名称cloud:nacos:config:server-addr: 127.0.0.1:8848  # Nacos 配置中心地址file-extension: yaml         # 配置文件格式namespace: dev               # 命名空间group: DEFAULT_GROUP         # 配置组discovery:server-addr: 127.0.0.1:8848  # Nacos 服务发现地址
    

2. application.yml

  • 作用

    • application.yml 是 Spring Boot 项目中的主配置文件,用于配置应用程序的运行时属性
    • 它会在 bootstrap.yml 之后加载,通常用于配置应用程序的具体行为。
    • 可以配置数据库连接、日志、缓存、端口等。
  • 加载时机

    • bootstrap.yml 加载完成后,application.yml 会被加载。
    • 它由 application 上下文加载。
  • 典型配置

    server:port: 8080  # 服务端口spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driverlogging:level:root: INFOcom.example: DEBUG
    

3. bootstrap.yml 和 application.yml 的区别

特性bootstrap.ymlapplication.yml
加载顺序优先加载bootstrap.yml 之后加载
作用范围应用程序启动阶段的配置应用程序运行时的配置
典型用途配置远程配置中心、服务发现等配置数据库、日志、端口等
上下文bootstrap 上下文application 上下文
是否必须非必须,仅在需要 Spring Cloud 功能时使用必须,Spring Boot 的主配置文件

4. 配置文件的优先级

Spring Boot 支持多种配置文件格式(如 .yml.properties),它们的加载优先级如下:

  1. bootstrap.yml(或 bootstrap.properties
  2. application.yml(或 application.properties
  3. 外部配置文件(如通过 --spring.config.location 指定的文件)

5. 示例:结合 Nacos 的配置

bootstrap.yml
spring:application:name: my-servicecloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: yamlnamespace: devgroup: DEFAULT_GROUPdiscovery:server-addr: 127.0.0.1:8848
application.yml
server:port: 8080spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driverlogging:level:root: INFOcom.example: DEBUG

6. 注意事项

  • 如果不需要使用 Spring Cloud 的功能(如远程配置中心、服务发现等),可以只使用 application.yml
  • 在 Spring Cloud 项目中,bootstrap.yml 通常用于配置远程配置中心(如 Nacos、Spring Cloud Config)的连接信息。
  • 如果 bootstrap.ymlapplication.yml 中有相同的配置项,bootstrap.yml 的配置会优先生效。

通过合理使用 bootstrap.ymlapplication.yml,可以更好地管理 Spring Boot 和 Spring Cloud 项目的配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13019.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Uniapp-Vue3】创建DB schema数据表结构

右键uniCloud文件下的database文件,点击“新建DB schema”,选择模板,修改文件名,点击“创建” 创建完成后会出现对应的文件,进入该文件进行配置 对文件中的必填选项,用户权限,字段进行配置 其…

1-ET框架开发环境与demo运行

所需开发环境 安装Unity模块时,记得安装windows Build Support(IL2CPP),否则打包会出问题。 安装visual studio,因为需要安装开发组件,需要选择 下载MongoDB7.0.2并安装 确认MongoDB安装成功 查看计算机…

CTP查询资金费率和手续费没响应

CTP的OnRspQryInstrumentOrderCommRate()和OnRspQryInstrumentCommissionRate()和手续费率和手续费有关系,但是今天我通过重写这两个方法,并且调用ReqQryInstrumentCommissionRate()后没响应,查了半天发现,我应该把响应函数实现写…

Python爬虫实战:一键采集电商数据,掌握市场动态!

电商数据分析是个香饽饽,可市面上的数据采集工具要不贵得吓人,要不就是各种广告弹窗。干脆自己动手写个爬虫,想抓啥抓啥,还能学点技术。今天咱聊聊怎么用Python写个简单的电商数据爬虫。 打好基础:搞定请求头 别看爬虫…

Page Assist实现deepseek离线部署的在线搜索功能

前面文章Mac 基于Ollama 本地部署DeepSeek离线模型 实现了deepseek的离线部署,但是部署完成虽然可以进行问答和交互,也有thinking过程,但是没办法像官方一样进行联网搜索。今天我们介绍一款浏览器插件Page Assist来实现联网搜索,完…

Qt跨屏窗口的一个Bug及解决方案

如果我们希望一个窗口覆盖用户的整个桌面,此时就要考虑用户有多个屏幕的场景(此窗口要横跨多个屏幕),由于每个屏幕的分辨率和缩放比例可能是不同的,Qt底层在为此窗口设置缩放比例(DevicePixelRatio&#xf…

AI绘画:解锁商业设计新宇宙(6/10)

1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffu…

逻辑回归原理

逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。 逻辑回归尤其是二元逻辑回归是非常常见的模型,训练速度很快,虽然使用起来没有支持向量机(SVM&#xf…

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用) 文章目录 四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)1. 有序集合 Zset(sorted set)2. zset 有序…

AlwaysOn 可用性组副本所在服务器以及该副本上数据库的各项状态信息

目录标题 语句代码解释:1. `sys.dm_hadr_database_replica_states` 视图字段详细解释及官网链接官网链接字段解释2. `sys.availability_replicas` 视图字段详细解释及官网链接官网链接字段解释查看视图的创建语句方法一:使用 SQL Server Management Studio (SSMS)方法二:使用…

编程之路:在细节中磨砺技艺

编程之路:在细节中磨砺技艺 在编程的世界里,每一个字符、每一行代码都像是精心雕琢的艺术品,承载着程序员的智慧与心血。而在这个充满挑战与惊喜的旅程中,问题与解决方案总是如影随形。就像在开发居家养老管理系统时,我…

基于ArcGIS的SWAT模型+CENTURY模型模拟流域生态系统水-碳-氮耦合过程研究

流域是一个相对独立的自然地理单元,它是以水系为纽带,将系统内各自然地理要素连结成一个不可分割的整体。碳和氮是陆地生态系统中最重要的两种化学元素,而在流域系统内,水-碳-氮是相互联动、不可分割的耦合体。随着流域内人类活动…

【Linux网络编程】:URL(encode),HTTP协议,telnet工具

🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ Linux网络编程笔记: https://mp.csdn…

6 [新一代Github投毒针对网络安全人员钓鱼]

0x01 前言 在Github上APT组织“海莲花”发布存在后门的提权BOF,通过该项目针对网络安全从业人员进行钓鱼。不过其实早在几年前就已经有人对Visual Studio项目恶意利用进行过研究,所以投毒的手法也不算是新的技术。但这次国内有大量的安全从业者转发该钓…

【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制

【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制 一. 数据同步 在之前的学习中有了副本Replica的概念,解决了数据备份的问题。我们还需要面临一个设计难题即:如何处理分区中Leader与Follwer节点数据同步不匹配问题所带来的风险,这也是保证数据高可用的…

使用DeepSeek R1 + 了解部署

官网注册 R1模型,推理模型 参考视频理解 理解大语言模型的本质 大模型在训练时是将内容token化的大模型知识是存在截止时间的大模型缺乏自我认知、自我意识记忆有限输出长度有限 智商理解,例如下面的DeepSeek的测试: 用DeepSeek 官网手…

Page Assist - 本地Deepseek模型 Web UI 的安装和使用

Page Assist Page Assist是一个开源的Chrome扩展程序,为本地AI模型提供一个直观的交互界面。通过它可以在任何网页上打开侧边栏或Web UI,与自己的AI模型进行对话,获取智能辅助。这种设计不仅方便了用户随时调用AI的能力,还保护了…

【优先算法】专题——位运算

在讲解位运算之前我们来总结一下常见的位运算 一、常见的位运算 1.基础为运算 << &&#xff1a;有0就是0 >> |&#xff1a;有1就是1 ~ ^&#xff1a;相同为0&#xff0c;相异位1 /无进位相加 2.给一个数 n&#xff0c;确定它的二进制表示…

Eureka加密 及Gateway搭建 - 基于SpringBoot不同版本配置方式

前言&#xff1a;在最近开发过程中 偶遇根据SpringBoot不同版本导致配置方式不一致等问题 通用&#xff1a;Eureka服务配置 Server端&#xff1a; 一、引入依赖 spring-boot-starter-security <dependencies><!-- Eureka 声明依赖 --><dependency><gro…

3-Not_only_base/2018网鼎杯

3-Not_only_base 打开code MCJIJSGKPZZYXZXRMUW3YZG3ZZG3HQHCUS 分析&#xff1a; 首先看题知道解密过程中肯定有base解密。 知识点1&#xff1a; Base64字符集&#xff1a; 包含大小写字母&#xff08;A-Z、a-z&#xff09;、数字&#xff08;0-9&#xff09;以及两个特殊字…