5.@ConfigurationProperties与@Value的区别
Posted yangyh26
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.@ConfigurationProperties与@Value的区别相关的知识,希望对你有一定的参考价值。
配置文件yml还是properties他们都能获取到值;如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
1.功能
使用@Value来代替@ConfigurationProperties也是可以的
2.松散绑定
在application.properties中:
1 person.last-name=张三
如果不支持松散绑定,那么Person.java中必须写成
1 @Value("${person.last-name}")
如果支持松散绑定,那么在application.properties中:
1 person.lastName=张三
1 person.last_name=张三
都是没有问题的。
3.SpEL
如果支持Spring Expression Language,那么application.properties中可以出现
1 person.age=#{11*2}
事实上这就相当于
1 person.age=22
4.JSR303校验
如果要求age变量必须是邮件格式,可以向Person类中加入@Validated以及@Email。那么此时application.properties中的age必须满足邮件格式才可以。
5.复杂类型封装
这里的复杂类型指的是诸如maps等类型。
以上是关于5.@ConfigurationProperties与@Value的区别的主要内容,如果未能解决你的问题,请参考以下文章