首先两者相同之处就是都是从我们的配置文件中读取值,在完成注入
区别是
@ConfigurationProperties能完成批量的注入,而@Value只能完成单个的注入
@ConfigurationProperties能做到对数据校验
@Value不能做到对数据的校验
数据的校验可以用@Email做实验
@ConfigurationProperties支持松散绑定语法,而
@Value不支持
不支持松散绑定语法指的是驼峰命名后,你从配置文件取值时,你的的大写必须变小写,小写前面还要加 - 。
@ConfigurationProperties支持SpEL
@Value不支持
最后总结,@ConfigurationProperties更适合我们已经提前写好了javaBean来与配置文件进行映射
@Value更适合我们获取配置文件某个属性值时用