首页 > Java > java教程 > 正文

SpringBoot之bootstrap和application的区别是什么

WBOY
发布: 2023-05-16 17:46:34
转载
3181 人浏览过

    bootstrap和application的区别说明

    bootstrap和application都是SpringBoot项目中的配置文件,他们的区别主要有以下的几个方面

    (1)加载顺序区别

    bootstrap配置文件是比application配置文件优先加载的,因为bootstrap是由spring父上下文加载,而application是由子上下文加载

    (2)优先级区别

    bootstrap加载的配置信息是不能被application的相同配置覆盖的,如果两个配置文件同时存在,也是以bootstrap为主

    (3)应用场景区别 bootstrap常见应用场景

    1.配置一些固定的,不能被覆盖的属性.用于一些系统级别的参数配置

    本地的配置文件是默认不能覆盖远程的配置的

    2.一些需要加密/解密的场景

    3.当你使用了Spring Cloud Config配置中心时,这时需要在boostrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息,专业翻译如下

    SpringBoot之bootstrap和application的区别是什么

    application常见应用场景

    1.常用于SpringBoot项目的自动化配置

    2.用于一些应用级别的参数配置

    在大部分情况下不用区分这两种情况,只需要使用application即可,效果基本是一致的

    SpringBoot配置优先级(bootstrap和application)

    bootstrap和application的区别

    • bootstrap.yml 先于 application.yml。

    • 在 ApplicationContext 引导阶段,可以使用 bootstrap.yml。Spring应用上下文是由父上下文ApplicationContext加载的。定义系统级别的参数配置,这些参数一般不会变动。

    • application.yml 用来定义应用级别的参数配置。搭配 spring-cloud-config 使用时 application.yml 定义的参数可以实现动态替换。

    • application.yml 会覆盖 bootstrap.yml 的参数配置。

    springboot的配置优先级

    由里向外,外层覆盖里层。

    命令行参数 > 操作系统环境变量 > 应用外的配置文件 > 应用内的配置文件

    加入springcloud配置中心后

    配置中心 > 命令行参数 > 本地application.yml > 本地bootstrap.yml

    配置允许覆盖:

    spring:
      cloud:
        config:
          allowOverride: true
          overrideNone: true
          overrideSystemProperties: false
    登录后复制

    以上是SpringBoot之bootstrap和application的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

    相关标签:
    来源:yisu.com
    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!