Spring Boot 核心配置文件 bootstrap & application 详解。

Spring Boot 同时被 2 个专栏收录
51 篇文章 6 订阅
67 篇文章 12 订阅

用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件

  • bootstrap (.yml 或者 .properties)
  • application (.yml 或者 .properties)

为什么会有这两种配置文件呢?大家都清楚它们的区别和具体使用场景吗?

bootstrap/ application 的区别

特意去翻了下 Spring Boot 的官方文档,没有找到关于这两种文件的具体定义,然后再翻了下 Spring Cloud 的官方文档找到了它们的区别。

http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_the_bootstrap_application_context

认真阅读了下文档,原文大概意思是这样。

Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

因此,对比 application 配置文件,bootstrap 配置文件具有以下几个特性。

  • boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载
  • boostrap 里面的属性不能被覆盖

bootstrap/ application 的应用场景

application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。

bootstrap 配置文件有以下几个应用场景。

  • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
  • 一些固定的不能被覆盖的属性
  • 一些加密/解密的场景;

以下这个截图是一个国外网友问了一个 Spring Cloud 工程师得到的回答。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9IezUwba-1600130750897)(http://p179cyr45.bkt.clouddn.com/18-4-2/38651438.jpg)]

做过 Spring Cloud 微服务的朋友应该对 bootstrap 的应用十分清楚,我们也有 Spring Cloud 的实战教程,在 Spring 专题中都能看到。
推荐:Spring Boot & Cloud 最强技术教程

扫描关注我们的微信公众号,干货每天更新。

  • 8
    点赞
  • 2
    评论
  • 16
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p> <span style="font-size:18px;"><strong>为什么要学习服务端渲染 nuxt.js ?</strong></span><strong><span style="font-size:18px;"></span></strong> </p> <p> <span style="font-size:18px;"><span style="font-size:14px;">现在我们的项目大多数都是SPA(单页面应用),在实际开发过程中单页面应用比之前的模板渲染要好很多,首先单页面应用是前后端分离,架构清晰,前端负责交互逻辑,后端负责数据,前后端单独开发,独立测试但是,SPA不利于SEO(搜索引擎优化)让搜索引擎更为信任该网站,通过提升排名获得更多网站流量,对于某些类型的网站是非常有必要的目前大部分的Vue项目本质是 SPA 应用,React、Angular也都是SPA应用SPA应用广泛用于对SEO要求不高的场景中在我们开发的过程中,我们有 SEO 的需求,我们需要搜索引擎更多地抓取到我们的项目内容,此时我们需要SSRSSR保证用户尽快看到基本的内容,也使得用户体验性更好</span><span style="font-size:14px;"></span><br /> </span> </p> <p style="text-align:center;"> <span style="font-size:18px;"><span style="font-size:14px;"><img src="https://img-bss.csdn.net/201908180620316714.png" alt="" /><br /> </span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;">Nuxt.js 是一个 Node 程序,基于vue.js开发的一套服务端渲染的框架,必须使用 Node 环境我们对 Nuxt.js 应用的访问,实际上是在访问这个 Node.js 程序的路由,程序输出首屏渲染内容 + 用以重新渲染的 SPA 的脚本代码,而路由是由 Nuxt.js 约定好的 pages 文件夹生成的,开发只需要遵循一定的约定,直接使用vue.js开发我们项目也是非常轻松的<br /> </span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><br /> </span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong>课程案例</strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:14px;"><strong>(1) HOME PAGE</strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><img src="https://img-bss.csdn.net/201908180621374702.png" alt="" /><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong>(2) Jokes Page </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><img src="https://img-bss.csdn.net/201908180622012095.png" alt="" /><img src="https://img-bss.csdn.net/201908180622206132.png" alt="" /><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong>(3)About Page </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><img src="https://img-bss.csdn.net/201908180623185478.png" alt="" /><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><span style="font-size:18px;"><strong><br /> </strong></span></strong></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><span style="font-size:14px;"></span><span style="font-size:18px;"><strong>课程概述</strong></span></strong></span></span></span> </p> <p style="text-align:left;"> <span><span><span><span><span style="font-size:14px;">在本课程中,大喵将使用 nuxt.js + bootstrapVue + json-server 开发实战性质一个入门级项目,带着大家来体验服务端渲染(SSR )项目构建的过程;介绍 nuxt.js项目目录的结构,每个文件夹和文件的基本概念和作用,以及nuxt.config.js 配置文件的基本介绍;页面公共结构处理,路由页面跳转配置处理;axios 接口请求;带着大家来熟悉及掌握 bootstrapVue UI组件库的使用;</span><span style="font-size:14px;"></span></span></span></span></span> </p> <p style="text-align:left;"> <span style="font-size:18px;"><span style="font-size:14px;"><span style="font-size:18px;"><strong><br /> </strong></span></span></span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值