Spring Boot 核心配置文件详解

转载自   Spring Boot 核心配置文件详解

用过 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#thebootstrapapplicationcontext

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

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 工程师得到的回答。

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入类的方法

一、构造方法: 1.什么是构造方法? (1)方法名与类名相同 (2)没有返回类型 (3)主要完成对象的初始化工作 2.构造方法是没有返回类型的。 3.默认情况下,系统会自动给每个类分…

使用Jersey跨服务器上传图片 报405 Method Not Allowed错误

springMVC跨服务器上传 报错: HTTP Status 500 – Internal Server ErrorType 异常报告 消息 Request processing failed; nested exception is com.sun.jersey.api.client.UniformInterfaceException: PUT http://localhost:9090/uploads/2fdf8b2244324d1d9459349…

Net分布式系统之:微服务架构

一、背景&问题 之前框架是一个基于SOA思想设计的分布式框架。各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于.NET的WCF通信平台。框架存在如下2个问题: 1、高并发处理能力不足。一当高并发请求,可能出现…

初识继承和多态

一、继承: 1.C#中,一个类是可以继承另一个类的,被继承的类称为父类,继承其他类称为子类或者派生类。 2.继承要符合is a的关系,比如apple is a friut,bus is a car 3.创建子类的对象时,会首先调用父类的构造…

跟我学 Java 8 新特性之 Stream 流基础体验

转载自 跟我学 Java 8 新特性之 Stream 流基础体验 Java8新增的功能中,要数lambda表达式和流API最为重要了.这篇文章主要介绍流API的基础,也是流API系列的第一篇文章,话不多说,直奔主题. 什么是流API? 它能做一些什么? 我们应该知道(绝对知道~)API是一个程序向使用者提供…

SpringMVC跨服务器上传文件中出现405错误

解决引用地址SpringMVC跨服务器上传文件中出现405错误

深入理解多态

一、里氏替换原则: 1.子类对象可以赋给父类变量,也可以说子类可以替换父类并且出现在父类能够出现的任何地方,且程序的行为不会发生变化,但是反过来,父类对象不能替换子类对象的,。这种特性被称作“里氏替换…

[Cake] 0.C#Make自动化构建-简介

0. Cake是什么? Cake是C# Make的缩写,是一个基于C# DSL的自动化构建系统。它可以用来编译代码,复制文件以及文件夹,运行单元测试,压缩文件以及构建Nuget包等等。 熟悉大名鼎鼎的Make的小伙伴,应该已经知道…

99%的面试官都会问到的Java面试题

转载自 99%的面试官都会问到的Java面试题 最近是招聘季,所谓金九银十,正是跳槽的好几节。今天,给大家整理了一些Java面试常考的经典题目,我们一道一道来分析一下。 经典面试题 1、谈谈你对 Java 平台的理解?“Java …

想对你们每个人说的话

135编辑器1吉方鑫:方鑫,在我和王老师面前,你永远都是那么的乖,爱笑,常言道:爱笑的人运气不会太差,希望你也是如此哦,现在的学业已经到了三期了,相信你也知道后期的学习该…

Tomcat9.0 设置局域网内其他电脑或手机端访问{9.0更新}

Tomcat在Windows中安装好了之后,默认只能从本机以http://localhost:8080的方式访问。 想要从远处电脑输入http://ip:8080的方式是没法访问的。 这是时候需要修改tomcat的配置文件。其文件位置是 C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\m…

Dora.Interception: 一个为.NET Core度身定制的AOP框架

多年从事框架设计开发使我有了一种强迫症,那就是见不得一个应用里频繁地出现重复的代码。之前经常Review别人的代码,一看到这样的程序,我就会想如何将这些重复的代码写在一个地方,然后采用“注入”的方式将它们放到需要的程序中。…

JS中的事件绑定

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">window.onload function(){/** 点击按钮以后弹出一个内容*///获取按钮对象var btn01 document.getElement…

揭秘阿里秒级百万TPS平台架构实现

转载自 揭秘阿里秒级百万TPS平台架构实现 导读&#xff1a;搜索离线数据处理是一个典型的海量数据批次/实时计算结合的场景&#xff0c;阿里搜索中台团队立足内部技术结合开源大数据存储和计算系统&#xff0c;针对自身业务和技术特点构建了搜索离线平台&#xff0c;提供复杂…

相对你们说的一些话

135编辑器1田文豪&#xff1a;文豪&#xff0c;最近上课我看你很认真&#xff0c;面试题也背的挺好的&#xff0c;你在很努力的学习了&#xff0c;这是一个非常好的趋势&#xff0c;希望你能一直保持下去。你的脑字也是很灵活的&#xff0c;好几次考试都超出了我的预想&#xf…

Yolov3参数解释以及答疑

Yolov3参数解释以及答疑

Build 2017 | 一文看懂微软 Build 2017 大会:让 AI 走向边缘

200 多家明星企业&#xff0c;20 位著名投资机构顶级投资人共同参与&#xff01;「新智造成长榜」致力于发掘 AI 领域有 “三年十倍” 成长潜力的创新公司&#xff0c;下一波 AI 独角兽&#xff0c;会有你么&#xff1f;点击阅读原文了解详情&#xff01; 雷锋网按&#xff1a;…

JS键盘监听事件

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">window.onload function(){/** 键盘事件&#xff1a;* onkeydown* - 按键被按下* - 对于onkeydown来说…

一文带你理解Java中Lock的实现原理

转载自 一文带你理解Java中Lock的实现原理 当多个线程需要访问某个公共资源的时候&#xff0c;我们知道需要通过加锁来保证资源的访问不会出问题。java提供了两种方式来加锁&#xff0c;一种是关键字&#xff1a;synchronized&#xff0c;一种是concurrent包下的lock锁。syn…

请19级的童鞋们接收一下

135编辑器1李磊&#xff1a;磊&#xff0c;假期过的可好&#xff1f;有没有人在写作业呀&#xff1f;通过这段时间的学习&#xff0c;可以看得出你对我们的课程兴趣浓厚&#xff0c;尤其是scratch&#xff0c;自己做了好多的案例&#xff0c;之前还以为你们都是从网上直接下载的…