当前位置: 首页 > news >正文

application.yml 和 bootstrap.yml

在 Spring Boot 中,application.ymlbootstrap.yml 都是用来配置应用程序的属性文件,通常用于环境配置、服务配置等。但是,它们有一些不同的用途和加载顺序。以下是它们之间的主要区别:

1. application.yml

  • 主要作用:这是 Spring Boot 应用程序中最常见的配置文件。它用于配置应用程序的各种属性,如数据库连接、端口号、日志配置、定时任务等。
  • 加载顺序application.yml 在 Spring Boot 应用启动时加载,是默认的配置文件。
  • 用途:一般用于与应用程序本身相关的配置,例如:
    • 端口配置
    • 数据库配置
    • 日志级别
    • 自定义的应用参数

2. bootstrap.yml

  • 主要作用bootstrap.yml 是用于初始化 Spring Cloud 配置的文件,通常与 Spring Cloud 配置中心(如 Spring Cloud Config)一起使用。它的作用是用来在应用启动时早期加载配置,尤其是外部配置源(例如配置中心、Consul、Zookeeper 等)。
  • 加载顺序bootstrap.yml 会在 application.yml 之前加载。Spring Boot 会首先加载 bootstrap.yml,然后加载 application.yml。因此,bootstrap.yml 中的配置优先级较高。
  • 用途:主要用于与应用初始化阶段相关的配置,常用于:
    • 配置 Spring Cloud 配置中心
    • 配置外部服务(如 Consul、Zookeeper 等)
    • 设置 Spring Cloud 的相关配置

3. 加载顺序和优先级

  • 加载顺序:Spring Boot 应用程序会先加载 bootstrap.yml,然后加载 application.yml
  • 优先级:如果在两个文件中都定义了相同的属性,bootstrap.yml 中的配置会覆盖 application.yml 中的配置。

4. 常见的使用场景

  • application.yml

    • 用于单纯的 Spring Boot 项目,或者不涉及 Spring Cloud 的项目。
    • 配置 Spring Boot 内部的各种属性,例如数据库连接、服务端口、日志设置等。
  • bootstrap.yml

    • 主要用于 Spring Cloud 应用,尤其是涉及到外部配置源(如 Spring Cloud Config)的项目。
    • 在 Spring Cloud 中,bootstrap.yml 用来配置配置服务器的地址和其他初始化配置。

示例:

application.yml 示例(用于普通的 Spring Boot 配置):
server:port: 8080spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: password
bootstrap.yml 示例(用于 Spring Cloud 配置):
spring:application:name: my-spring-cloud-appcloud:config:uri: http://localhost:8888  # 配置中心的地址

application.yml 配置了应用的端口和数据库连接,bootstrap.yml 配置了 Spring Cloud Config 的服务器地址。

5. 总结

  • application.yml:适用于大多数普通的 Spring Boot 应用,包含应用的业务逻辑配置。
  • bootstrap.yml:用于 Spring Cloud 环境,专门处理配置中心的初始化和外部配置源的加载,且会在 application.yml 之前加载。

如果你在使用 Spring Cloud 的项目,通常需要同时使用这两个文件;而在没有使用 Spring Cloud 的普通 Spring Boot 项目中,application.yml 就足够了。

http://www.lryc.cn/news/500265.html

相关文章:

  • 使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示
  • ubuntu22.04 使用可以用的镜像源获取你要的镜像
  • Flume——sink连接hdfs的参数配置(属性参数+时间参数)
  • python+docker实现分布式存储的demo
  • go-blueprint create exit status 1
  • 如何更改Git用户名 - 本地与全局设置指南
  • Node.js JWT认证教程
  • 【青牛科技】应用于音频信号处理系统的D258 是由两个独立的高增益运算放大器组成
  • HTML Input 文件上传功能全解析:从基础到优化
  • 小程序 —— Day1
  • 4.5 TCP 报文段的首部格式
  • SQL 获取今天的当月开始结束范围:
  • Qt复习学习
  • Leetcode经典题5--轮转数组
  • C++的一些经典算法
  • Windows环境中Python脚本开机自启动及其监控自启动
  • XML 语言随笔
  • E卷-分割数组的最大差值
  • 基于SpringBoot校园台球厅人员与设备管理系统设计与实现
  • 异步FIFO的实现
  • 关于找工作的一些感悟
  • docker 相关问题记录
  • Devops 实践
  • MySQL 索引(B+树)详解
  • 医疗系统国产数据库高质量发展路径探析
  • 微信小程序报错:http://159.75.169.224:7300不在以下 request 合法域名列表中,请参考文档
  • 智能租赁管理系统助力规范化住房租赁市场提升用户体验
  • MicroBlaze软核开发(一):Hello World
  • 跟着问题学15——GRU网络结构详解及代码实战
  • 【uniapp】swiper切换时,v-for重新渲染页面导致文字在视觉上的拉扯问题