问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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则适用于少量属性的简单项目。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号