Spring Boot项目中获取配置文件属性值的两种方法
创作时间:
作者:
@小白创作中心
Spring Boot项目中获取配置文件属性值的两种方法
引用
CSDN
1.
https://blog.csdn.net/xcw19961104/article/details/136875034
在Spring Boot项目中,为了更灵活地配置,我们将大量的参数,例如项目名、各种文件路径等,配置在application.properties或application.yml文件中。通过@ConfigurationProperties或者@Value注解,我们可以方便地获取这些参数值。
一、利用@Value注解进行配置属性注入
使用方法
@Value("${}")
示例代码
缺点
这种方法的属性值获取,要在每次使用时都要注入一次,显得略显笨重。下面介绍利用@ConfigurationProperties注解构建配置类的方法,效果可能会更好。
二、利用@ConfigurationProperties注解构建配置类
使用方法
@ConfigurationProperties(prefix = "ruoyi")表示加载配置文件中以"ruoyi"为前缀的属性,并将其值绑定注入到配置类的属性中。@Component注解将其声明为一个bean,交由Spring管理,这样便可在其他模块进行bean的注入,从而获取属性值。对于配置类的静态属性,则可不用注入bean,直接通过类获取。这里注意必须提供set与get方法,且set()方法必须是非静态的,否则配置文件的值无法绑定进去。我们利用IDEA自动生成set与get方法时往往会出现这个问题。
示例代码
注意事项
- 前缀定义了哪些外部属性将绑定到配置类的字段上
- 类的属性名称必须与外部属性的名称相匹配
- 类的字段必须有公共setter方法
两种方法的对比
特征 | @Value | @ConfigurationProperties |
|---|---|---|
使用场景 | 适用于单个属性的注入 | 适用于多个相关属性的集中管理 |
代码量 | 每个属性都需要单独注入 | 只需要一个配置类即可管理多个属性 |
可维护性 | 属性分散在各个类中,维护困难 | 属性集中管理,便于维护 |
性能 | 每次使用时都需要解析表达式 | 属性值在启动时解析,运行时直接获取 |
适用性 | 适用于少量属性的简单项目 | 适用于复杂项目,特别是需要大量配置属性的场景 |
通过对比可以看出,@ConfigurationProperties更适合于管理大量配置属性的场景,而@Value则适用于少量属性的简单项目。
热门推荐
大连冬季自由行:7大冰雪场景、温泉度假、海鲜美食全攻略
洪崖洞美食攻略:重庆火锅、小面、酸辣粉,哪款是你的心头好?
冬季止咳三剑客:白萝卜、雪梨和柚子
张天朗医生教你秋冬防咳小妙招
中国咳嗽科普日推荐:最新医学止咳疗法揭秘
医生提醒:枸杞泡水虽能缓解胃胀气,但这些人不宜饮用
枸杞原浆:营养更全,吸收更快,携带更便捷的新养生选择
枸杞泡水胀气真相:这些人要慎饮,这样喝才安全
网课退费难?这些解决途径和法律规定请收好
培训机构以合同规定为由不退费合法吗
从秦俑到椰林:25小时自驾穿越黄土高原与热带海岛
平时躺平,周末疯狂运动,健康效果居然是一样的
韩国“躺平”青年达44.3万人创历史新高,超七成“没有工作意向”
维生素B12和叶酸缺乏,小心身体发出警告信号
头晕耳鸣怎么办?5个实用应对方法
黑色长裙的最佳外套:牛仔夹克
秋冬最火黑色长裙搭配,你get了吗?
有机食品禁用化肥农药,营养价值更高更安全
中国移动5G-A商用覆盖百城,速度提升10倍并赠百G流量
3毫米伪装者:枸杞木虱的危害与防治
秋梢期柑橘木虱高发,三招防控黄龙病
山东监狱系统21位先进典型宣讲事迹,激励干警推进工作现代化
“枫桥经验”+公安联动:济南监狱打造监管新模式
曲阜鲁国故城遗址公园:3000年沧桑与儒家文化源头
山东新能源发电装机量首超煤电,科技创新引领绿色转型
山东农业总产值破1.2万亿元,科技创新引领现代农业发展
游戏设计方法论——以时间数值规划战斗体验
忽必烈灭南宋:一场实力并不悬殊的较量
元朝九十八年:从蒙古崛起到多民族统一
氨氯地平副作用全解析:发生率、表现及应对方法