SpringBoot的bootstrap和application配置⽂件
SpringBoot 的 bootstrap 和 application 配置⽂件
bootstrap项目SpringBoot 默认⽀持 properties 和 YAML 两种格式的配置⽂件,并且有 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 Context 初始化时才能知道需要去 Config/Consul 获取配置,并且知道
Config/Consul 的基本信息
⽐如⼀些固定的不希望被覆盖的属性,如程序的名字
⽐如⼀些加解密的场景
3、application 的配置可以有多个,⽐如 l,l,l
在 l 可以这样指定
spring:
profiles:
active: dev
这样 SpringBoot 在加载 l 后还会加载 l
并且如果两个⽂件有相同的配置项,那么 l 的会被 l 的覆盖
4、配置⽂件可以存在 4 个地⽅,按优先级从⾼到低是
项⽬根⽬录下的 config ⽂件夹
项⽬根⽬录
classpath 下的 config ⽂件夹
classpath
5、也可以在 java 命令指定
java -jar spring-boot-hello-1.0.0-SNAPSHOT.jar --fig.location=~/l
还可以在 java 命令中覆盖配置项
java -jar spring-boot-hello-1.0.0-SNAPSHOT.jar --spring.profiles.active=prod --server.port=8081
这⾥指定了新的 port 和 profile
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论