SpringBoot - 配置文件加载位置与优先级

【1】项目内部配置文件

spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件

–file:./config/
–file:./
–classpath:/config/
–classpath:/

即如下图所示:

以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。

SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件不冲突的属性,则会共同存在—互补配置。


我们也可以通过配置spring.config.location来改变默认配置。

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar
--spring.config.location=D:/application.properties

项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置。

指定配置文件和默认加载的这些配置文件共同起作用形成互补配置。


【2】外部配置加载顺序

SpringBoot也可以从以下位置加载配置:优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。

1.命令行参数

  • 所有的配置都可以在命令行上进行指定;
  • 多个配置用空格分开; –配置项=值

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar
--server.port=8087 --server.context-path=/abc

2.来自java:comp/env的JNDI属性 
3.Java系统属性(System.getProperties()) 
4.操作系统环境变量 
5.RandomValuePropertySource配置的random.*属性值


6.jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件 
7.jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件 
8.jar包外部的application.properties或application.yml(不带spring.profile)配置文件 
9.jar包内部的application.properties或application.yml(不带spring.profile)配置文件

由jar包外向jar包内进行寻找,优先加载待profile的,再加载不带profile的。

10.@Configuration注解类上的@PropertySource 
11.通过SpringApplication.setDefaultProperties指定的默认属性


参考官网地址

官网图示如下:

SpringBoot - 配置文件加载位置与优先级相关推荐

  1. springboot配置文件加载位置

    高优先级覆盖低优先级 配置互补

  2. Spring boot配置文件加载位置

    配置文件加载位置 springboot 启动 会扫描以下位置的application.properties 或者application.yml文件,作为Spring boot的默认配置文件 –file ...

  3. 配置文件加载位置||外部配置加载顺序||自动配置原理

    配置文件加载位置 SpringBoot会从这四个位置全部加载主配置文件:互补配置: 外部配置加载顺序 自动配置原理 1.自动配置原理: 1).SpringBoot启动的时候加载主配置类,开启了自动配置 ...

  4. Springboot 配置文件的加载位置以及优先级和外部配置文件加载的优先级

    配置文件的加载位置: springboot在启动时会扫描以下位置的application.properties文件或者application.yml文件作为springboot默认的配置文件. 项目目 ...

  5. springboot配置文件加载顺序_「SpringBoot系列」配置文件加载优先级解析

    SpringBoot提供了外部分配置功能,可以使用属性文件(properties).YAML(yml)文件.环境变量和命令行参数来进行处部参数配置,并t以特定的顺序来处理配置,以便于允许合理的覆盖值. ...

  6. springBoot配置文件加载原理探究

    尽管用springBoot做开发已经有很长一段时间了,在开发时一般都是直接将application.properties或application.yml,放在开发环境的resources下的,运行起来 ...

  7. SpringBoot之配置文件加载位置

    1.简介 SpringBoot启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件 优先级由高到低,高优先级的配 ...

  8. springboot配置文件加载顺序

    1.同一目录下,properties配置优先级 > YAML配置优先级. 2.SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同.可放置目录(优先级从高到低) fi ...

  9. Spring : Spring配置文件加载位置

    1.美图 2.概述 spring boot启动会扫描以下位置的application.properties或者applicatior.yml文件作为Spring boot的默认配置文件 file:./ ...

最新文章

  1. zigbee 端点描述符
  2. Python lambda表达式
  3. mac 用惠普扫描仪扫描提示将对您的电脑造成伤害_惠普全能打印神器测评:15秒智能闪充、打一张仅需5分钱...
  4. python文件流读取二进制_Python使用web.py从POST请求中提取二进制文件
  5. openlayers3 根据经纬度 自动画框_用这软件,让你的电脑自动搞黄色
  6. 人工智障学习笔记——机器学习(4)支持向量机
  7. blui_BLUI:一种创建游戏UI的简单方法
  8. 135. 分发糖果(JavaScript)
  9. Java 学习笔记之 线程安全
  10. java websocket 后台服务器_Unity3D与Java后台TomCat服务器传递数据和文件(1)建立Java服务器...
  11. linux包含绝对路径头文件,linux-kernel - 访问用户空间内存访问函数(如access_ok(),get_from_user())需要包含的头文件的确切路径。 - 堆栈内存溢出...
  12. 机器学习基础算法13-回归实例-时间序列分析ARIMA
  13. 天天Android: (EditText明文、密文切换)
  14. Atitti  onvif 设备发现与原理
  15. Java垃圾回收机制(GC)
  16. c# winform 支付宝付款
  17. 惠普台式计算机系统系统修复,一键恢复系统,详细教您怎么一键恢复惠普笔记本系统...
  18. 【Rust 日报】2021-12-23 Rust有什么是Zig所没有的?
  19. Unity --- 角色移动时播放动画 与 动画剪辑
  20. 奥迪q5计算机控制显示,奥迪q5仪表盘功能图解,奥迪q5仪表盘怎么切换

热门文章

  1. QT5日志功能(qDebug、qWarnng、qCritical、qFatal)
  2. python制作一个简单的udp聊天器
  3. python函数的使用方法图解_零基础python之4函数重用-函数与模块(附详细的步骤和程序)...
  4. Nandflash 驱动深度分析(基于S3C2410)
  5. Stack与queue的底层实现、区别。
  6. java excel odbc_Java:无法使用JDBC ODBC更新Excel
  7. react 中组件隐藏显示_React组件开发中常见的陷阱及解决
  8. android camera 动画,Android 使用Camera创建3D动画
  9. python-MYSQL(包括ORM)交互
  10. 越狱Season 1- Episode 16