「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

相关文章
|
13天前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
7天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
28 3
|
25天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
51 2
|
25天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
47 1
|
25天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
17 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
25天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
21 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
25天前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
75 0
|
30天前
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
62 2
|
6月前
|
Java Maven
IDEA Maven SpringBoot配置POM文件
IDEA Maven SpringBoot配置POM文件
249 0
|
前端开发 Java 应用服务中间件
SpringBoot自动配置原理:解析Pom.xml文件《第五课》
SpringBoot自动配置原理:解析Pom.xml文件《第五课》
203 0