SpringCloud配置⽂件加载优先级简述
Spring Cloud中配置⽂件的加载机制与其它的Spring Boot应⽤存在不⼀样的地⽅;如它引⼊了bootstrap.properties的配置⽂件,同时也⽀持从配置中⼼中加载配置⽂件等;本⽂主要聚焦在这些配置⽂件加载的优先级及覆盖关系的控制上,对于帮助理解Spring Cloud的配置⽂件加载⽅式有⼀定的帮助。
1. bootstrap上下⽂
Spring中加载的配置⽂件是分层级的;
Spring Cloud启动的时候会创建⼀个bootstrap的上下⽂,它是应⽤的⽗级上下⽂(请注意这⾥所说的bootstrap指的是是启动最开始时加载的配置项,与l或者说bootstrap.properties是两码事,这点很容易混淆);它负责从⼀些外部环境中加载配置项,如配置中⼼;这部分配置项的优先级是最⾼的,因此它不会被其它的配置⽂件中加载的配置项给覆盖。
bootstrap的上下⽂使⽤另外⼀种机制来加载额外的配置⽂件,相对于从application.properties(或者yml)中加载配置⽂件中加载配置项,你也可以选择从bootstrap.properties(yml)中加载,以区分boostrap上下⽂中加载的配置项和主上下⽂加载的配置项。
可以在系统配置项或者启动命令参数中指定不使⽤bootstrap机制加载配置项:
spring.abled=false
2. 配置项加载位置
Spring Cloud应⽤加载的配置项可以来⾃于以下⼏个位置:
启动命令中指定的配置项;
操作系统配置项;
环境变量
配置中⼼中的配置⽂件;
本地的application.properties(yml)springcloud怎么读音
本地boostrap.properties(yml)
这⼏个位置的配置项从上往下优先级递减,即从上⾯位置加载的配置项会覆盖下⾯位置加载的配置项。如application.properties中加载的配置项优先级要⾼于bootstrap.properties中加载的配置项
3.配置项的覆盖配置
默认情况下,从Spring Cloud Config中加载的配置项,是不能被本地的配置项覆盖的,如果想要覆盖这些配置项,需要在配置中⼼的配置⽂件中(或者系统配置项、命令⾏配置项中等)添加以下配置项(注意本地配置⽂件中增加该配置⽆任何意义)
fig.allowOverride=true
表⽰本地的配置⽂件(如l或者l)中的配置项可以覆盖远程的配置项,默认是false;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论