欢迎来到淼淼之森的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

SpringBoot中application.yml与bootstrap.yml的区别 置顶!

  |   0 评论   |   0 浏览

0、序

大家都知道,SpringBoot默认支持properties(.properties)YAML(.yml .yaml )两种格式的配置文件。

1、加载顺序

  • 1、若application.yml 和bootStrap.yml 在同一目录下 :bootstrap.yml先加载 application.yml后加载。
  • 2、bootstrap.yml 用于应用程序上下文的引导阶段。bootstrap.yml 由父Spring ApplicationContext加载。
  • 3、父ApplicationContext 被加载到使用 application.yml 的之前。

如果resource里面同时有 application.propertiesapplication.yml,且存在相同的配置,则 application.properties 会覆盖 application.yml 里面的属性,因为 application.properties 会后加载,也就是说哪个文件被最后加载,哪个才具有最高级。(application 会覆盖bootstrap中的非引导配置)

2、配置区别

  • 1、bootstrap.yml 和application.yml 都可以用来配置参数。
  • 2、bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取. 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
  • 3、application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等.如果加载的application.yml的内容标签与bootstrap的标签一致,application会覆盖bootstrap, 而application.yml 里面的内容可以动态替换。

3、典型的应用场景如下:

  • 1、当使用 Spring Cloud Config Server 的时候,你应该在 bootstrap.yml 里面指定 spring.application.name 和 spring.cloud.config.server.git.uri
  • 2、和一些加密/解密的信息

为何需要把 config server 的信息放在 bootstrap.yml 里?

当使用 Spring Cloud 的时候,配置信息一般是从 config server 加载的,为了取得配置信息(比如密码等),你需要一些提早的或引导配置。因此,把 config server 信息放在 bootstrap.yml,用来加载真正需要的配置信息。

当然,在一些情况上不用那么区分这两个文件,你只需要使用application文件即可,把全部选项都写在这里,效果基本是一致的,在不考虑上面的加载顺序覆盖的问题上。

参考文档:https://cloud.spring.io/spring-cloud-static/Dalston.SR5/single/spring-cloud.html#_the_bootstrap_application_context


标题:SpringBoot中application.yml与bootstrap.yml的区别
作者:mmzsblog
地址:https://www.mmzsblog.cn/articles/2023/06/25/1687698572092.html

如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道