SpringBoot配置文件优先级(全)
SpringBoot配置⽂件优先级(全)
⼀、配置⽂件优先级
1. 在执⾏命令的⽬录下建config⽂件夹,然后把配置⽂件放到这个⽂件夹下。(在jar包的同⼀个⽬录下建config⽂件夹,执⾏命令需要
在jar包所在⽬录下才⾏)
2. 直接把配置⽂件放到jar包的同级⽬录
3. 在classpath下建⼀个config⽂件夹,然后把配置⽂件放进去。
4. 在classpath下直接放配置⽂件。
5. 以上1-4优先级逐渐递减。
6. springboot默认是优先读取它本⾝同级⽬录下的⼀个config/application.properties⽂件。
公司员工守则
⼆、互补读取
在不指定外部配置⽂件路径的前提下,springBoot按照上述优先级加载。
今年荷花什么时候开
1. 如果优先级⾼的配置⽂件中没有某个配置项,则会到优先级低的配置⽂件中该配置项,即具有互补功能。
2. 需要注意的是,⽂件名相同才会互补。⽐如:
1. classpath下的application.properties会补config⽬录下的application.properties⽂件。bootsrtap同样互补。
2. 相当于最终互补完成后形成两个总⽂件:application和bootstarp。
3. ⽽bootstrap的优先级⼜⽐application⾼,所以会出现相同配置项classpath下bootstarp,⽐config下application的配置优先
级⾼。关于母爱的名言30条
无线路由器怎么设置密码
3. 如果spring.profiles.active不指定, 默认application.properties⽂件。
4. 如果spring.profiles.active指定dev,则默认application-dev.properties⽂件。即使优先级最⾼的config⽬录存在application配
置也不会读取。
5. 如果application-dev.properties⽂件不存在(四个优先级⽬录都没有),则会按优先级application.properties⽂件。bootstrap
同。
三、指定配置⽂件路径启动程序
#通过 -fig.location指定配置⽂件路径
nohup java -fig.location=/⽬录/application.properties -jar jar包
1. 如果启动程序时指定配置⽂件路径,则程序运⾏时只读取指定的配置⽂件。指定配置⽂件不存在则报错,程序启动失败。
四、启动注⼊spring.profiles.active
1. 当启动参数设置-Dspring.profiles.active=sit后,则会按照上述优先级依次寻-sit配置⽂件并进⾏互补。
说什么王权富贵 怕什么戒律清规2. 若四个优先级都不存在-sit⽂件,则依次寻默认配置⽂件。
3. 注意:不论是-sit⽂件还是默认配置⽂件中,对spring.profiles.active进⾏重新赋值是⽆效的。注⼊命令中,优先级最⾼。(测试验
证是这样的)
五、总结
周杰伦所有的歌
以上规则都是⽹上搜寻,并⾃⾏测试验证的结论。
1. springBoot默认读取bootstrap和application配置⽂件,且前者优先级更⾼。
2. 读取顺序见第⼀节介绍,两个⽂件相当于两个分⽀,互补读取,类似最终各⾃汇总为⼀个⽂件。且其中重复参数bootstrap优先级更
⾼。
3. bootstrap中指定spring.profiles.active=sit,则会相应读取application-sit配置⽂件。
4. 指定sit,但不到相应配置⽂件,则默认配置⽂件。application和bootstrap互不影响。
例如:指定sit,四个优先级⽬录存在application-sit,不存在bootstrap-sit。则使⽤application-sit内的
参数,和默认(四个优先级⽬录寻)的bootstrap内的参数。
5. 启动参数设定了spring.profiles.active。其余配置中存在,不会对其进⾏覆盖。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。