Spring Boot配置文件的加载位置及顺序

Spring Boot配置文件的加载位置及顺序是Spring
Boot应用启动过程中一个重要的环节,它决定了哪些配置文件会被加载以及它们的优先级。以下是对Spring
Boot配置文件加载位置和顺序的详细解析:

配置文件加载位置

Spring
Boot项目启动时,会扫描以下位置的application.properties或application.yml文件作为默认配置文件:

file:./config/: 项目路径(通常是src的同级目录)下的config目录。

file:./: 项目的根目录(src的同级目录)。

classpath:/config/: 类路径(通常是resources的同级目录)下的config目录。

classpath:/: 类路径的根目录(resources的同级目录)。

配置文件加载顺序

Spring Boot按照以下顺序加载配置文件,高优先级的配置会覆盖低优先级的配置:

  • file:./config/(最高优先级)

  • file:./

  • classpath:/config/

  • classpath:/(最低优先级)

配置文件类型

Spring Boot支持两种类型的配置文件:application.properties和application.yml(或application.yaml)。当同一个目录下同时存在这两种类型的配置文件时,application.properties会优先加载,但两种文件会进行互补配置。即,如果同一配置项在两个配置文件中都进行了设置,那么application.properties中的配置会覆盖application.yml中的配置。

外部配置加载顺序
除了上述默认的配置文件加载位置外,Spring Boot还支持多种外部配置方式,它们的优先级从高到低如下:

命令行参数:通过java -jar命令启动应用时,可以在命令后附加–配置项=值的形式来指定配置。

来自java:comp/env的JNDI属性。

Java系统属性(System.getProperties())。

操作系统环境变量。

RandomValuePropertySource配置的random.*属性值:用于生成随机值。

jar包外部的带profile的配置文件(如application-{profile}.properties或application-{profile}.yml)。

jar包内部的带profile的配置文件。

jar包外部的不带profile的配置文件(如application.properties或application.yml)。

jar包内部的不带profile的配置文件。

@Configuration注解类上的@PropertySource。

通过SpringApplication.setDefaultProperties指定的默认属性。

注意事项
可以通过spring.config.location属性来改变默认的配置文件位置。

在项目打包后,可以使用命令行参数的形式来指定配置文件的新位置,指定的配置文件和默认加载的配置文件会共同起作用,形成互补配置。

当使用多环境配置时(如开发、测试、生产环境),可以通过激活不同的profiles来加载对应的配置文件。

综上所述,Spring Boot配置文件的加载位置和顺序是灵活且可配置的,可以根据项目的具体需求进行调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个双鱼座的测开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值