SpringBoot应用属性的设置途径及优先级

183 阅读1分钟

springBoot应用有多种途径去设置属性

  1. 命令行参数
  2. java:com/env里的JNDI属性
  3. jvm系统属性
  4. 操作系统环境变量
  5. 应用程序之外的application.properties或application.yml
  6. 打包在应用程序内的application.properties或application.yml
  7. 通过 @propertySource标注的属性源
  8. 默认属性

这个列表按照优先级排序,也就说任何高优先级属性都会覆盖低优先级的相同属性。 application.propers和application.yml文件能够放在以下四个位置。

  1. 外置:在相对于应用程序运行的目录的/config子目录里
  2. 外置:在程序的运行目录里
  3. 内置:在config包内
  4. 内置:在ClassPath根目录

同样这个列表按照优先级排序,也就是说/config子目录里的application.properties会覆盖ClassPath里的application.properties, 此外如果你在同一优先级同时存在application.properties和application.yml 则.yml里的属性会覆盖.porperties里的属性