本文主要是介绍@Value获取值和@ConfigurationProperties的应用场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
@Value获取值和@ConfigurationProperties的应用场景
Hello World
一、@Value获取值和@ConfigurationProperties的区别
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
SpEL
@Value支持
@Value("#{11*2}")private Integer age;//age=22
@ConfigurationProperties不支持
person.age=#{11*2}//编译通不过
person.age=${random.int}
JSR303数据校验
例子:@Email这个注解在@ConfigurationProperties中可以生效,而在@Value中不起作用,
复杂类型封装
例子:
@Value("${person.maps}")//编译报错private Map<String,Object> maps;
@Value无法获取复杂类型封装的值
二、应用场景
配置文件yml还是properties他们都能获取到值;
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;(也就使用配置文件中的项少)
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;(也就使用配置文件中的项多)
这篇关于@Value获取值和@ConfigurationProperties的应用场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!