SpringBoot-学习-4-全局配置文件


前言

我们之前学习其他的框架时,都会创建一个核心配置文件,SpringBoot也不例外,也有一个核心配置文件,也就是全局配置文件,那么:全局配置文件的作用是什么?SpringBoot都支持那些类型的配置文件?全局配置文件要放到哪里才能被加载到?会不会有多个全局配置文件?如果有的话加载顺序怎么控制呢?接下来,让我们带着这些问题来继续学习吧

一、全局配置文件的作用是什么?

全局配置文件可以对一些默认的配置进行修改,以及定义一些自定义的配置
举个例子:我们默认创建的SpringBoot项目会自动启动一个Tomcat,他的端口号是8080,我们如果想要修改这个端口号就可以在全局配置文件中进行修改
在这里插入图片描述
如上图:我们直接在默认生成的application.properties文件中修改server.port=8181,然后在启动项目就可以看到Tomcat的启动端口修改成功了
另外我们可以自定义一些配置,这里我举个例子,同样是在application.properties文件中:
在这里插入图片描述
然后再项目中使用:
在这里插入图片描述
这样就可以了

二、SpringBoot都支持那些类型的配置文件?

Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件
也就是说SpringBoot支持properties类型和yaml类型的配置文件

三、全局配置文件要放到哪里(哪个目录下)才能被加载到?会不会有多个全局配置文件?

从官网的介绍中我们就可以看出来,可以有多个全局配置文件,就是下面的四种路径下:
在这里插入图片描述
我们用我们的项目看一下:
在这里插入图片描述
接下来就是下一个问题了,这些地方都可以有全局配置文件,那么同样的属性优先级是怎样的呢?

四、不同路径下的全局配置文件的优先级是怎样的呢?

很简单,我们以Tomcat的端口号来验证下就知道了,我们在四个位置都写上一个端口号,但是端口不一样,我们来试一下:
在这里插入图片描述
在这里插入图片描述
通过多次的调整配置文件最终得出的结论就是:
1、加载优先级从高到低分别是:
根目录下/config目录下配置文件
根目录下的配置文件
类路径下/config目录下配置文件
类路径下的配置文件
2、SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件存在冲突属性则取高优先级,如果不冲突则采用互补配置(同时存在)


五、补充

1、如果同一个目录下,同时有application.yaml也有application.properties,优先级是怎样的?
如果同一个目录下,有application.yaml也有application.properties,默认先读取application.properties。

Spring Boot 2.4 改进了处理 application.properties 和 application.yml 配置文件的方式,
如果是2.4.0之前版本,优先级properties>yaml
但是如果是2.4.0的版本,优先级yaml>properties
如果想继续使用 Spring Boot 2.3 的配置逻辑,也可以通过在 application.properties 或者 application.yml 配置文件中添加以下参数:

spring.config.use-legacy-processing = true
2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取 到的。

3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”。

4、如果我们的配置文件名字不叫application.properties或者application.yaml,可以通过在启动参数中自定义spring.config.name来指定配置文件的名字
例如:配置文件名是:myproject,那么启动参数如下

$ java -jar myproject.jar --spring.config.name=myproject

5、我们还可以在启动参数中通过自定义spring.config.location来指定其他位置的配置文件生效,比如我们指定一个D盘的application.properties文件,启动参数如下:

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

总结

这一篇我们简单的对全局配置文件进行了初步了解,后面我们继续深入学习

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值