当前位置: 代码迷 >> 综合 >> SpringBoot:@Value和@ConfigurationProperties注入数据的区别
  详细解决方案

SpringBoot:@Value和@ConfigurationProperties注入数据的区别

热度:31   发布时间:2023-09-18 15:39:54.0
@Value和@ConfigurationProperties的区别
  @Configuration @Value
功能 批量注入配置文件的属性 逐个注入数据
松散绑定 支持松散语法绑定 不支持松散语法绑定
SpEL 不支持 支持
JSR303数据校验 支持 不支持
复杂类型(map,list)注入 支持 不支持

@Value就是对spring在bean.xml文件中进行容器组件配置的封装,提供完全相同的调用默认构造函数进行属性的数据注入支持,但以注解的形式配置。

其他外来类放入容器中,在配置类中配置,在主类注解引用。

@ConfigurationProperties可以同时获取yaml,properties两种配置文件的key下的配置值。


所以在选用注解的时候,根据两种不同的特点,获取简单的基本数据类型的使用,可以用@Value在配置文件中获取等方法。

在需要注入复杂类型对象或是需要批量注入文件属性的时候使用@ConfiguraionProperties进行配置。