1.不同点
(1)@ConfigurationProperties(prefix = "person")
功能:批量注入配置文件中的属性
SpEL:不支持表达式
JSR303数据校验:支持数据校验 @Validated @Email,例如:
复杂类型:支持复杂类型,例如:Maps
(2)@Value("${person.lastName}")
功能:一个个的注入配置文件中的属性
SpEL:支持表达式
JSR303数据校验:不支持邮箱校验
复杂类型:不支持复杂类型
2.相同点
配置文件 yml 和 properties 他们都能获取到属性值
注意事项:
(1)如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的属性值 推荐使用 @Value
(2)如果说,我们专门编写一个 JavaBean 来和配置文件进行映射的时候,就直接使用 @ConfigurationProperties