详谈 springboot下bootstrap与application

1. 区别

- bootstrap 配置文件先于 application 配置文件被加载,会先创建初始化 Bootstrap Context,再创建初始化 Application Context,应用于早期的配置信息。
- bootstrap 和 application 共享同一个 Environment。
- 默认情况下,bootstrap 的配置不会被覆盖,而 application 的配置项可以被覆盖(比如被application-dev 覆盖,或被 java 命令行覆盖)

2. bootstrap应用

  • 从 Spring Cloud Config 和 Consul 获取配置,初始化 Application Context需要在Config/Consul 获取配置,因此Config/Consul 基本信息不能写到 application,须在 bootstrap里配置。
  • Application Context初始化: 因提前加载 Config/Consul 的基本信息((1)一些固定的不希望被覆盖的属性,(2)如程序的名字, (3)一些加解密的场景) ,Application Context初始化时可读取 Config/Consul 获取配置

3. 多个application 的配置

application.yml
application-dev.yml
application-prod.yml

在 application.yml 指定使用后缀命yml文件

spring:
  profiles:
    active: dev

4. 加载顺序

SpringBoot 在加载 application.yml 后再加载 application-dev.yml,如果两个文件有相同的配置项, application.yml 的会被 application-dev.yml 的覆盖

配置文件可以存在 4 个地方,按优先级从高到低是

  • 项目根目录下的 config 文件夹
  • 项目根目录
  • classpath 下的 config 文件夹
  • classpath

5. 命令指定

在 JAVA 命令指定配置文件

java -jar spring-boot-hello-1.0.0-SNAPSHOT.jar --spring.config.location=~/application.yml

6. 覆盖文件

在 java 命令中覆盖配置文件,指定了新的 port 和 profile

java -jar spring-boot-hello-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod --server.port=9999
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一介布衣+

做好事,当好人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值