「Spring Boot 系列」06. Spring Boot 配置文件加载顺序

简介: 「Spring Boot 系列」06. Spring Boot 配置文件加载顺序

内部配置文件加载顺序

Spring Boot程序启动时,会从以下位置加载配置文件:


项目根目录:当前项目下的/config目录下

项目根目录:当前项目的根目录下

classpath:classpath的/config目录下

classpath:classpath的根目录下

加载顺序为上面的排列顺序,高优先级配置文件的属性会生效


注意:优先级高的配置文件只覆盖优先级低的配置文件中的重复项。低级配置文件的独有项仍然有效。


目录结构如下:

image.png


测试:


测试方法: 通过配置Tomcat的端口号来检测他们的优先级顺序

测试步骤:


classpath的根目录下,即resources下的application.yml

在该位置的配置文件中设置Tomcat的端口号为8081,启动该项目

image.png

classpath的/config目录下,即resources中config目录下的application.yml

在该位置的配置文件中设置Tomcat的端口号为8082,重新启动该项目

image.png

当前项目的根目录

在该位置的配置文件中设置Tomcat的端口号为8083,重新启动该项目

image.png

当前项目下的/config目录下

在该位置的配置文件中设置Tomcat的端口号为8084,重新启动该项目

image.png

测试结果: 这四个位置的配置文件的优先级从低到高与测试的顺序一致。

外部配置文件加载顺序

通过指定配置spring.config.location来改变默认配置,一般在项目已经打包后,我们可以通过指令来加载外部文件的配置:

java -jar xxx.jar --spring.config.location=e://Java/application.yml

image.png


改变环境变量时,可以通过修改外部配置文件来实现,不需重新打包项目。


当然如果你觉得在命令行指定外部配置文件的位置太麻烦,那么我再告诉你种方法,那就是在你想启动的项目jar包所在的文件夹下新建一个application.yml配置文件,或者在该文件夹下新建一个config的文件夹并在config文件夹下新建一个application.yml配置文件。


image.png


这时候该项目就会自动读取该配置文件,如果两个同时存在,他们也是有优先级的,config文件下的yml文件是优先于与jar包同级的yml文件。


更详细的介绍可以查看Spring Boot 中文文档

image.png

相关文章
|
18天前
|
Java 调度 Spring
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
38 0
|
21天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
38 0
|
1月前
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
52 0
|
11天前
|
安全 数据安全/隐私保护
Springboot+Spring security +jwt认证+动态授权
Springboot+Spring security +jwt认证+动态授权
|
1月前
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
400 0
|
1天前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
4 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
|
3天前
|
XML Java C++
【Spring系列】Sping VS Sping Boot区别与联系
【4月更文挑战第2天】Spring系列第一课:Spring Boot 能力介绍及简单实践
28 0
【Spring系列】Sping VS Sping Boot区别与联系
|
6天前
|
Java Shell 测试技术
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
16 0
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
|
10天前
|
Java 容器
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
12 0
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
45 1