springboot 读取配置文件的优先级

博客主要围绕YML配置不同环境展开,介绍了利用YML进行不同环境配置的相关内容,属于后端开发中Spring Boot框架下配置文件的应用。

yml配置不同的环境:

### Spring Boot 配置文件加载顺序和优先级 Spring Boot 应用程序启动时会按照特定的顺序来查找并加载配置文件。这一过程确保了不同环境下的配置可以被正确覆盖,从而实现灵活的应用部署。 外部配置遵循一定的层次结构,在多个位置定义相同属性的情况下,较高优先级的位置将会覆盖较低优先级中的设置[^1]。具体来说: - **命令行参数** 命令行参数具有最高优先级,能够覆盖其他任何地方指定的同名属性值。 - **来自 `java:comp/env` 的 JNDI 属性** - **Java 系统属性 (`System.getProperties()`)** - **操作系统环境变量** - **RandomValuePropertySource 中的随机数** - **打包 jar 外部的 application.properties 或 application.yml 文件** - **jar 内部的 application.properties 或 application.yml (classpath:) 文件** - **@ConfigurationProperties 注解类上的 @PropertySource 注解** - **默认属性 (通过 SpringApplication.setDefaultProperties 指定)** 对于带有 profile 后缀的配置文件(如 `application-dev.properties`),这些文件会在对应的无 profile 版本之后读取,并且其内部的内容拥有更高的优先权用于覆盖基础配置项。 当应用程序指定了活动 profiles (例如 `-Dspring.profiles.active=dev,test`),那么针对每个激活 profile 的特殊配置文件也会按上述规则参与进来,形成最终有效的配置集合。 ```yaml # Example of a YAML config file with multiple profiles server: port: 8080 --- spring: profiles: dev server: port: 9090 --- spring: profiles: prod server: port: 80 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值