在 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.mzph.cn/pingmian/69124.shtml

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

相关文章

108,【8】 buuctf web [网鼎杯 2020 青龙组]AreUSerialz

进入靶场 <?php // 包含 flag.php 文件&#xff0c;通常这个文件可能包含敏感信息&#xff0c;如 flag include("flag.php");// 高亮显示当前文件的源代码&#xff0c;方便查看代码结构和逻辑 highlight_file(__FILE__);// 定义一个名为 FileHandler 的类&#x…

《redis哨兵机制》

【redis哨兵机制导读】上一节介绍了redis主从同步的机制&#xff0c;但大家有没有想过一种场景&#xff0c;比如&#xff1a;主库突然挂了&#xff0c;那么按照读写分离的设计思想&#xff0c;此时redis集群只有从库才能提供读服务&#xff0c;那么写服务该如何提供&#xff0c…

今日AI和商界事件(2025-02-05)

今日AI领域的相关事件主要包括以下几个方面&#xff1a; 一、DeepSeek引发全球关注 性能与成本优势&#xff1a; DeepSeek推出的R1模型性能出色&#xff0c;成本较低&#xff0c;在全球AI行业引发震动。该模型在数学、代码处理等方面性能优异&#xff0c;受到广泛赞誉。 平台…

【赵渝强老师】Spark RDD的依赖关系和任务阶段

Spark RDD彼此之间会存在一定的依赖关系。依赖关系有两种不同的类型&#xff1a;窄依赖和宽依赖。 窄依赖&#xff1a;如果父RDD的每一个分区最多只被一个子RDD的分区使用&#xff0c;这样的依赖关系就是窄依赖&#xff1b;宽依赖&#xff1a;如果父RDD的每一个分区被多个子RD…

开源数据分析工具 RapidMiner

RapidMiner是一款功能强大且广泛应用的数据分析工具&#xff0c;其核心功能和特点使其成为数据科学家、商业分析师和预测建模人员的首选工具。以下是对RapidMiner的深度介绍&#xff1a; 1. 概述 RapidMiner是一款开源且全面的端到端数据科学平台&#xff0c;支持从数据准备、…

蓝桥杯备考:二维前缀和算法模板题(二维前缀和详解)

【模板】二维前缀和 这道题如果我们暴力求解的话&#xff0c;时间复杂度就是q次查询里套两层循环最差的时候要遍历整个矩阵也就是O&#xff08;q*n*m) 由题目就是10的11次方&#xff0c;超时 二维前缀和求和的公式&#xff08;创建需要用到&#xff09;f[i][j]就是从&#xf…

3-track_hacker/2018网鼎杯

3-track_hacker 打开附件 使用Wireshark打开。过滤器过滤http,看里面有没有flag.txt 发现有 得到&#xff1a;eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi base64解密 import base64 import zlibc eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi decoded base64.b64decode(c) result zlib.deco…

llama.cpp LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK2

llama.cpp LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK2 1. LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK22. LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK23. struct ggml_cgraph * build_deepseek() and struct ggml_cgraph * build_deepseek2()References 不宜吹捧中国大语言模型的同…

vite---依赖优化选项esbuildOptions详解

optimizeDeps.esbuildOptions vite.optimizeDeps.esbuildOptions 是 Vite 配置中的一个选项&#xff0c;它允许你在 Vite 启动时&#xff0c;给 esbuild&#xff08;Vite 用来处理代码转换和优化的工具&#xff09;传递额外的配置。通过这个配置项&#xff0c;你可以自定义 esb…

DNVS许可审计

在全球化商业环境中&#xff0c;合规性是企业稳定发展的关键因素。为了验证和确保企业遵循DNVS许可的合规标准&#xff0c;DNVS许可审计应运而生。本文将详细介绍DNVS许可审计的重要性、流程及其对企业的价值&#xff0c;帮助您更好地了解如何通过这一审计过程&#xff0c;引领…

因果推断与机器学习—可解释性、公平性和因果机器学习

随着人工智能技术的飞速发展,如人脸识别、自动驾驶、智能音箱和手术机器人等在社会各领域广泛应用,人工智能已成为科技革命和产业变革的核心驱动力。然而,在带来便利的同时,也引发了一系列问题: 数据统计:2016 年,基于美国食品和药物管理局(U.S. Food and Drug Adminis…

【Linux】curl命令详解

【Linux】curl命令详解 【一】curl命令介绍【1】curl命令简介【2】curl命令的基本语法【3】常用的curl命令选项【4】常用的curl命令参数 【二】curl命令示例用法【1】下载文件【2】发送 POST 请求【3】发送请求时附加头部信息【4】请求方法【5】指定用户名和密码进行身份验证【…

第二十章 存储函数

目录 一、概述 二、语法 三、示例 一、概述 前面章节中&#xff0c;我们详细讲解了MySQL中的存储过程&#xff0c;掌握了存储过程之后&#xff0c;学习存储函数则肥仓简单&#xff0c;存储函数其实是一种特殊的存储过程&#xff0c;也就是有返回值的存储过程。存储函数的参数…

使用 Grafana 和 Prometheus展现消息队列性能

引言 上篇文章通过JMX提取Kafka数据&#xff0c;本篇文章将通过JDBC存储Kafka性能数据存储于数据库&#xff0c;并通过Grafana 和 Prometheus进行展示&#xff0c;实现开发中常用的可视化监控 1. 环境准备 Kafka&#xff1a;运行中的 Kafka 集群&#xff0c;确保可以…

Linux:文件系统(软硬链接)

目录 inode ext2文件系统 Block Group 超级块&#xff08;Super Block&#xff09; GDT&#xff08;Group Descriptor Table&#xff09; 块位图&#xff08;Block Bitmap&#xff09; inode位图&#xff08;Inode Bitmap&#xff09; i节点表&#xff08;inode Tabl…

java求职学习day27

数据库连接池 &DBUtils 1.数据库连接池 1.1 连接池介绍 1) 什么是连接池 实际开发中 “ 获得连接 ” 或 “ 释放资源 ” 是非常消耗系统资源的两个过程&#xff0c;为了解决此类性能问题&#xff0c;通常情况我们 采用连接池技术&#xff0c;来共享连接 Connection 。…

机器学习--2.多元线性回归

多元线性回归 1、基本概念 1.1、连续值 1.2、离散值 1.3、简单线性回归 1.4、最优解 1.5、多元线性回归 2、正规方程 2.1、最小二乘法 2.2、多元一次方程举例 2.3、矩阵转置公式与求导公式 2.4、推导正规方程0的解 2.5、凸函数判定 成年人最大的自律就是&#xff1a…

Python | Pytorch | Tensor知识点总结

如是我闻&#xff1a; Tensor 是我们接触Pytorch了解到的第一个概念&#xff0c;这里是一个关于 PyTorch Tensor 主题的知识点总结&#xff0c;涵盖了 Tensor 的基本概念、创建方式、运算操作、梯度计算和 GPU 加速等内容。 1. Tensor 基本概念 Tensor 是 PyTorch 的核心数据结…

996引擎-怪物:Lua 刷怪+清怪+自动拾取

996引擎-怪物:Lua 刷怪+清怪+自动拾取 文件位置NPC脚本参考资料文件位置 文件位置服务端D:\996M2-lua\MirServer-lua\Mir200客户端D:\996M2-lua\996M2_debug\devNPC脚本 服务端\Mir200\Envir\Market_Def\test\test爆率-3.lua -- NPC入口函数 function main(player)-- 获取玩…

git进阶--6---git stash

git进阶–6—git stash 1.需求背景 有时候我们在工作区做了很多的修改&#xff0c;还没到提交的阶段&#xff0c;但是有需要切换到别的分支做一些工作&#xff0c;这时候我们就可以先把工作区的内容保存起来&#xff0c;稍后再做处理这就需要用到git stash,stash翻译为存放&a…