希赛考试网
首页 > 软考 > 网络工程师

springboot加载配置文件顺序

希赛网 2024-04-25 12:27:31

Spring Boot是现在Java开发中常用的框架之一,它通过自动配置和约定大于配置的原则,使得开发者无需繁琐的配置,就能够快速搭建一个实用的Spring应用。在使用Spring Boot过程中,我们经常需要加载配置文件,以便于对应用进行自定义配置。那么Spring Boot加载配置文件的顺序是怎样的呢?

首先,Spring Boot会默认加载application.properties或application.yml中的配置文件,其中application.properties的优先级更高,如果两个文件中存在相同的配置项,那么以application.properties文件为准。接下来,Spring Boot会根据开发者的需求或配置文件中的指令,按照一定的顺序加载其他的配置文件,如下:

1. file:./config/

从当前应用程序根目录的/config/目录中加载配置文件。其中,./表示当前目录,config为指定的目录名。

2. file:./

从当前应用程序根目录中加载配置文件。

3. classpath:/config/

从classpath根目录的/config/目录中加载配置文件。其中classpath表示类路径,即项目运行时的classpath。

4. classpath:/

从classpath根目录中加载配置文件。

另外,当多个配置文件中存在重复的配置项时,会按照以下优先级进行覆盖:命令行参数 > 单元测试 > @TestPropertySource > 测试中的@SpringBootTest注释 > @SpringBootTest注释 > 命令行参数 > java:comp/env > ServletConfig > ServletContext > java:system > OS环境变量 > RandomValuePropertySource。

除此之外,Spring Boot还可以通过特定的Profile来加载不同环境下的配置文件。比如,可以通过在application.properties中添加spring.profiles.active=dev的配置项来加载开发环境下的配置文件。这样,Spring Boot会优先加载application-dev.properties或application-dev.yml文件中的配置项。

综上所述,Spring Boot加载配置文件的顺序为:application.properties或application.yml > file:./config/ > file:./ > classpath:/config/ > classpath:/。另外,对于存在重复配置项的情况,会按照一定的优先级规则进行覆盖。最后,通过Profile功能还可以根据需要加载不同环境下的配置文件。

扫码咨询 领取资料


软考.png


网络工程师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
网络工程师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件