设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间18 现在时间18 缓存数据 从头到尾 我要的只有感情 可没人能给我

从头到尾 我要的只有感情 可没人能给我 -- 情深深雨濛濛

查看: 835|回复: 3

SpringBoot配置文件的优先级顺序、加载顺序、bootstrap.yml与application.y

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:204
  • 打卡月天数:0
  • 打卡总奖励:3246
  • 最近打卡:2023-08-27 03:25:43
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
407
主题
381
精华
0
金钱
4438
积分
810
注册时间
2022-12-25
最后登录
2025-8-30

发表于 2024-9-26 21:00:38 | 显示全部楼层 |阅读模式
目录
  • Spring Boot 配置文件
    • 优先级顺序
    • 加载顺序
      • bootstrap.yml 和 application.yml 有什么区别?
    • 实际应用场景
    • 总结

      Spring Boot 配置文件

      优先级顺序

      在 Spring Boot 中,配置文件的优先级顺序是:

      1. application-{profile}.yml
      复制代码
      1. application-{profile}.properties
      复制代码
      ) >
      1. application.yml
      复制代码
      1. application.properties
      复制代码
      ) >
      1. bootstrap.yml
      复制代码
      1. bootstrap.properties
      复制代码
      )。

      其中,

      1. {profile}
      复制代码
      表示不同的环境配置,如
      1. dev
      复制代码
      1. test
      复制代码
      1. prod
      复制代码
      等。

      优先级从高到低,高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。

      加载顺序

      在 Spring Boot 中,配置文件的加载顺序是按照以下规则:

      1. bootstrap.yml 或 bootstrap.properties: 这是最先加载的配置文件,用于配置应用程序上下文的基础设施,例如外部配置源和加密/解密。
      2. application.yml 或 application.properties: 这是主配置文件,包含应用程序的常规配置。
      3. application-{profile}.yml 或 application-{profile}.properties: 针对不同的环境(profile)加载相应的配置文件。例如,
        1. application-dev.yml
        复制代码
        用于开发环境,
        1. application-prod.yml
        复制代码
        用于生产环境。

      在加载配置文件时,Spring Boot 会按照上述顺序依次查找并加载相应的配置项。

      当存在相同名称的配置项时,

      后加载的配置文件会覆盖之前加载的相同键名的配置项。这种顺序保证了较高优先级的配置文件可以覆盖较低优先级的配置,实现了灵活的配置管理。

      bootstrap.yml 和 application.yml 有什么区别?

      1. bootstrap.yml
      复制代码
      1. application.yml
      复制代码
      都是 Spring Boot 项目中常用的配置文件。

      它们之间的主要区别如下:

      1.用途不同:

        1. bootstrap.yml
        复制代码
        文件主要用于配置 Spring Boot 应用程序的启动参数,例如数据库连接、服务器端口等。这些参数在应用程序启动时需要设置,因此将它们放在
        1. bootstrap.yml
        复制代码
        文件中。
        1. application.yml
        复制代码
        文件用于配置 Spring Boot 应用程序的全局参数,例如日志级别、缓存策略等。这些参数在应用程序运行时可以更改,但一旦更改,所有使用这些参数的地方都会受到影响,因此将它们放在
        1. application.yml
        复制代码
        文件中。

      2.内容不同:

        1. bootstrap.yml
        复制代码
        文件通常包含一些硬编码的配置值,例如数据库连接 URL、服务器端口等。这些值在应用程序启动时需要设置,因此将它们放在
        1. bootstrap.yml
        复制代码
        文件中。
        1. application.yml
        复制代码
        文件通常包含一些可配置的值,例如日志级别、缓存策略等。这些值在应用程序运行时可以更改,但一旦更改,所有使用这些值的地方都会受到影响,因此将它们放在
        1. application.yml
        复制代码
        文件中。

      3.顺序不同:

        1. bootstrap.yml
        复制代码
        文件在
        1. application.yml
        复制代码
        文件之前加载,因此在
        1. application.yml
        复制代码
        文件中定义的配置值会覆盖
        1. bootstrap.yml
        复制代码
        文件中相同的配置值。

      总之,

      1. bootstrap.yml
      复制代码
      文件主要用于配置应用程序的启动参数,而
      1. application.yml
      复制代码
      文件用于配置应用程序的全局参数。

      在实际项目中,可以根据需要选择使用哪个文件或者同时使用两个文件。

      Spring Boot 项目可能不会直接使用 bootstrap.yml,但是在 Spring Cloud 项目中会使用它来定义一些与 Spring Cloud 组件相关的额外配置,例如服务发现和配置服务器等。

      实际应用场景

      在实际项目中,通常有一些推荐的最佳实践,例如:

      • 数据库连接信息等启动时必需的配置项可能放在
        1. bootstrap.yml
        复制代码
      • 应用程序级别的配置项、日志级别、缓存策略等放在
        1. application.yml
        复制代码

      但是,有些项目也可能不用

      1. bootstrap.yml
      复制代码
      ,而是采用 Nacos 配置中心或者命令行运行参数进行配置。

      这种灵活性使得开发团队能够根据实际需求选择最适合项目的配置方式,从而更好地适应不同的环境和应用场景。

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持晓枫资讯。


      免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
      晓枫资讯-科技资讯社区-免责声明
      免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
            1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
            2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
            3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
            4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
            5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

        离线 

      TA的专栏

      等级头衔

      等級:晓枫资讯-列兵

      在线时间
      0 小时

      积分成就
      威望
      0
      贡献
      0
      主题
      0
      精华
      0
      金钱
      11
      积分
      2
      注册时间
      2024-11-4
      最后登录
      2024-11-4

      发表于 2024-12-16 15:26:30 | 显示全部楼层
      感谢楼主,顶。
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

        离线 

      TA的专栏

      等级头衔

      等級:晓枫资讯-列兵

      在线时间
      0 小时

      积分成就
      威望
      0
      贡献
      0
      主题
      0
      精华
      0
      金钱
      11
      积分
      2
      注册时间
      2024-5-5
      最后登录
      2024-5-5

      发表于 2025-7-3 08:00:50 | 显示全部楼层
      路过,支持一下
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

        离线 

      TA的专栏

      • 打卡等级:无名新人
      • 打卡总天数:1
      • 打卡月天数:0
      • 打卡总奖励:13
      • 最近打卡:2024-10-13 18:45:34
      等级头衔

      等級:晓枫资讯-列兵

      在线时间
      0 小时

      积分成就
      威望
      0
      贡献
      0
      主题
      0
      精华
      0
      金钱
      26
      积分
      6
      注册时间
      2023-5-24
      最后登录
      2024-10-13

      发表于 前天 09:08 | 显示全部楼层
      顶顶更健康!!!
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
      严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
      您需要登录后才可以回帖 登录 | 立即注册

      本版积分规则

      1楼
      2楼
      3楼
      4楼

      手机版|晓枫资讯--科技资讯社区 本站已运行

      CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

      晓枫资讯--科技资讯社区

      本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

      如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

      Powered by Discuz! X3.5

      快速回复 返回顶部 返回列表