0
点赞
收藏
分享

微信扫一扫

SpringBoot 的属性配置文件


0、概述

本文内容会解答下面几个问题:
1、SpringBoot默认配置文件的名称是什么?配置文件默认存放位置是什么?
2、如何指定配置文件名称?如何指定配置文件存放位置?
3、如何使用profile指定配置文件?

1、配置文件位置 🆗

1.1、默认配置文件位置和名称(Ex.)🆗

SpringApplication 从以下4个位置加载 ​​application.properties​​​ 文件 , 然后将加载的属性放入 Environment,这4个位置如下:
1、当前文件夹下的 config 子文件夹
⚠️当前文件夹指的是项目的根路径,如果当前的项目有父工程,当前文件夹指的是父工程的根路径

2、当前文件夹

3、classpath 下的 config 包

4、classpath

默认的配置文件名称就是​​application​​​, 允许3种扩展名:​​properties​​​、​​yml​​​、​​yaml​

⚠️三种扩展名的文件同时存在情况下,优先级又高到底

1.2、指定配置文件位置和名称(Ex.)🆗

​spring.config.name​​​ 和 ​​spring.config.location​​ 用作事先确定加载哪些文件,因此必须将它们定义为环境属性 ,通常是 OS 环境变量,系统属性或命令行参数

⚠️同时配置这3个,这3个优先顺序是由高到低,即“程序参数指定”优先级最高,“环境变量指定”优先级最低

(1)、 程序参数指定🆗

java PropertyMainApp --spring.config.location=d:/springboot-conf/ --spring.config.name=yh9002

(2)、 系统参数指定🆗

java PropertyMainApp -Dspring.config.location=d:/springboot-conf/ -Dspring.config.name=yh9001

(3) 、环境变量指定🆗

大家一定配置过​​JAVA_HOME​​, 就是在配置它的地方配置这个两个参数

⚠️注意:配置了两个参数,我的idea需要重启才能读到这个两个参数值

1.3、不同位置配置文件内容互补(Ex.)🆗

上面描述了配置文件的文件名和位置,Spring会读取所有位置的配置文件,取配置文件中所有属性的“并集”

相同的属性情况下,优先级高的文件中的属性会覆盖低优先级文件的属性

2、setter方法属性绑定

3、构造方法属性绑定

4、第三方组件的注入

5、属性校验

6、Profile

7、总结


举报

相关推荐

0 条评论