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功能还可以根据需要加载不同环境下的配置文件。
扫码咨询 领取资料