@Value 和 @ConfigurationProperties 获取值的比较

1.不同点

(1)@ConfigurationProperties(prefix = "person")

功能:批量注入配置文件中的属性

SpEL:不支持表达式

JSR303数据校验:支持数据校验 @Validated  @Email,例如:

复杂类型:支持复杂类型,例如:Maps

(2)@Value("${person.lastName}")

功能:一个个的注入配置文件中的属性

SpEL:支持表达式

JSR303数据校验:不支持邮箱校验

复杂类型:不支持复杂类型

2.相同点

配置文件 yml 和 properties 他们都能获取到属性值

注意事项:

(1)如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的属性值  推荐使用 @Value

(2)如果说,我们专门编写一个 JavaBean 来和配置文件进行映射的时候,就直接使用 @ConfigurationProperties

原文地址:https://www.cnblogs.com/crazycode2/p/10279542.html