spring yml 配置事务_Spring Cloud项目中application.yml和bootstrap.yml区别

Spring Cloud/Spring Boot项目中application.yml和bootstrap.yml区别

6f3f942382070390f62ce005ae0dca8a.png

application和bootstrap的加载顺序

Bootstrap.yml在application.yml之前加载,就像application.yml一样,但是用于应用程序上下文的引导阶段。

技术上,bootstrap.yml由父Spring ApplicationContext加载。父ApplicationContext被加载到使用application.yml的之前。

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

启动上下文Bootstrap Context

Spring Cloud会创建一个Bootstrap Context,作为Spring应用的Application Context的父上下文。

初始化的时候,Bootstrap Context负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的Environment。Bootstrap属性有高优先级,默认情况下,它们不会被本地配置覆盖。 Bootstrap Context和Application Context有着不同的约定,所以新增了一个bootstrap.yml文件,而不是使用application.yml。保证Bootstrap Context和Application Context配置的分离。

下面是一个例子: bootstrap.yml

spring:

application:

name: foo

cloud:

config:

uri: ${SPRING_CONFIG_URI:http://localhost:8888}

推荐在bootstrap.yml or application.yml里面配置spring.application.name。

你可以通过设置spring.cloud.bootstrap.enabled=false来禁用bootstrap。

典型应用场景

1. 当使用 Spring Cloud Config Server的时候,应该在 bootstrap.yml里面指定 spring.application.name和 spring.cloud.config.server.git.uri。

2. 一些加密/解密的信息。

f3261d3d9acb94ba0f851e95b56350ce.png

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

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

如下是config server 中设置的配置信息:

358a00be5cbe214d5fda62fcdff45ebb.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值