当前位置: 代码迷 >> 综合 >> springboot中@Value和@ConfigurationProperties区别
  详细解决方案

springboot中@Value和@ConfigurationProperties区别

热度:41   发布时间:2023-10-26 08:17:03.0
  @ConfigurationProperties @Value
功能 批量注入配置文件中的属性 一个个指定
松散绑定(松散语法)  支持 不支持
SpEL 不支持 支持
JSR303数据校验 支持 不支持
复杂类型封装 支持 不支持

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

配置文件注入值数据校验

//@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {/*** <bean class="Person">*      <property name="lastName" value="字面量/${key}从环境变量、配置文件中获取值/#
{SpEL}"></property>* <bean/>*///lastName必须是邮箱格式@Email//@Value("${person.last‐name}")private String lastName;//@Value("#{11*2}")private Integer age;//@Value("true")private Boolean boss;private Date birth;private Map<String,Object> maps;private List<Object> lists;private Dog dog