5.@ConfigurationProperties与@Value的区别

Posted yangyh26

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.@ConfigurationProperties与@Value的区别相关的知识,希望对你有一定的参考价值。

  配置文件yml还是properties他们都能获取到值;如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

技术图片

 

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的区别的主要内容,如果未能解决你的问题,请参考以下文章