(6)SpringBoot - ConfigurationProperties和Value的区别
在前面(4)中使用 @ConfigurationProperties(prefix = “person”) 可以将本类中的所有属性和配置文件中相关的配置进行绑定
还有另外一种方法可以与相关的配置进行绑定
使用@Value
我们首先将 @ConfigurationProperties(prefix = “person”)给注释掉,使用@Value进行赋值
结果显示:
ConfigurationProperties和Value的比较:
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
什么时候使用这两者最为合适?
配置文件yml还是properties他们都能获取到值:
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个JavaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;