spring boot学习之@ConfigurationProperties与@Value的区别

1)@ConfigurationProperties支持批量注入
@ConfigurationProperties(prefix = “person”)

@ConfigurationProperties(prefix = "person")
public class Person {

@Value只能一个一个进行配置

@Value( "${person.name}")//配置文件属性注入
private String name;//类的属性
@Value("#{11*2}")//springSpEL表达式注入
private Integer age;

@value与bean中的配置属性作用相同

<bean class="Person">
     <property name="name" value="字面量/${key}从环境变量、配置文件中获取值/#{SpEll}"></property>
</bean>

2)@ConfigurationProperties支持松散语法绑定(比如person.lastNname和person.last-name均支持),@Value不支持
3)@ConfigurationProperties不支持SpEL表达式,@Value支持
4)@ConfigurationProperties支持JSR303数据校验,@Value不支持
在类上加上@Validated注解
5)@ConfigurationProperties支持复杂类型的封装,@Value不支持
配置yaml和properties它们均可以获取到值
如果说我们只是在某个业务逻辑中需要获取配置文件中的值,使用@Value,如果说我们专门编写了一个Javabean来和配置文件进行映射,我们直接使用@ConfigurationProperties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值