【SpringBoot】配置文件的加载与属性值的绑定

本文探讨了SpringBoot配置属性源的加载顺序,包括命令行参数、外部JSON配置、JVM属性源、环境变量等,并阐述了属性源的优先级。详细解释了@Value注解的工作机制,以及属性如何绑定到实例、List和Map中。同时讨论了当多个属性源有相同属性时的处理方式。
摘要由CSDN通过智能技术生成

Question


在使用SpringBoot过程中你是否会有以下疑问?

  • 具体有多少种配置属性源的方式呢?
  • 为何使用@Value 注解就能够获取到属性源中的值呢?
  • 属性源这么多,如果属性相同的话 那么用哪个值呢?
  • 属性源是如何绑定到我们的程序中的呢?

本篇文章会针对以上问题逐个分析

Answer


我们的所有属性源都存放在AbstractEnvironment中的属性propertySources中; 每加载一个属性源就会往里面塞一个propertySource;
然后当我们需要取某个属性的时候,就会从这个propertySources遍历查找,找到就返回; 所以我们就可以知道,如果多个属性源中有相同的属性,那么肯定是排在最前面的被找到就会返回,优先级最高; 那么这是整个背景; 我们现在来分析具体的问题

具体有多少种配置属性源的方式呢?

以下优先级由高到低

  1. 命令行方式
    java -jar xx.jar --spring.profiles.active=pro&
    关于命令行的详细请看文章 【SpringBoot 一】SpringApplication启动类的Args详解

  2. 如果是以web方式启动的还会有 { servletConfigInitParamsservletContextInitPar

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

石臻臻的杂货铺

不用打赏,加微信,交个朋友就好

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

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

打赏作者

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

抵扣说明:

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

余额充值