Springboot配置⽂件默认放置位置,和加载优先级
⼀、默认配置⽂件⽬录
  spring boot 启动会扫描以下位置的application.properties 或者l⽂件作为spring boot 的默认配置⽂件,加载的优先由上到下,加载的时候,会把以下路劲的⽂件都加载⼀遍。不同的配置内容会全部加载到系统,对于重复的配置内容,优先级别⾼的配置⽂件内容会覆盖优先级别低的配置⽂件内容。
路劲说明
file:./config/⼯程⽂件夹下的config⽬录。
file:/⼯程⽂件夹⽬录,如果是maven项⽬那么和l是⼀个层级
classPath:/config/⼯程 classPath⽂件夹下的config⽂件夹
classPath:/⼯程classpath⽂件夹
  除了上述的⽂件⽬录以外,还可以⽤fig.location 参数的形式指定配置⽂件:java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --fig.location=G:/application.properties ,如果上述的
默认路劲有配置⽂件的话,会和配置内容会形成互补作⽤,相同的内容优先级别⾼的会覆盖优先级别低的。
⼆、外部配置
  有时候⼯程已经打成jar了,想修改系统的配置,SpringBoot也可以从jar包外⾯设置参数,加载配置;以下设置优先级从⾼到低;⾼优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置
  1.命令⾏参数
    所有的配置都可以在命令⾏上进⾏指定,多个配置⽤空格分开; --配置项=值
    java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --t-path=/abc
  2.来⾃java:comp/env的JNDI属性
  3.Java系统属性(Properties())
springframework和springboot  4.操作系统环境变量
  5.RandomValuePropertySource配置的random.*属性值
  在⼯程jar包的层级⽬录下建⽴配置⽂件如:那么以参数的形式启动⼯程:java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar ,加载配置⽂件,会按以下规则,由jar包外向jar包内进⾏寻;
  优先加载带profile
  6.jar包外部的application-{profile}.properties或l(带spring.profile)配置⽂件
  7.jar包内部的application-{profile}.properties或l(带spring.profile)配置⽂件
  再来加载不带profile
  8.jar包外部的application.properties或l(不带spring.profile)配置⽂件
  9.jar包内部的application.properties或l(不带spring.profile)配置⽂件
  10.@Configuration注解类上的@PropertySource
  11.通过SpringApplication.setDefaultProperties指定的默认属性
  所有⽀持的配置加载来源;

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