【Spring Boot】06 @Value 与 @ConfigurationProperties

@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个一个指定属性
松散绑定(松散语法)支持不支持
SpEL不支持支持
JSR303 数据校验支持不支持
复杂类型封装支持不支持
功能
@ConfigurationProperties 一句话搞定,直接批量注入
@ConfigurationProperties(prefix = "person")
@Value 需要一个一个进行指定
/**
     * <bean class="Person">
     *      <property name="LastMame" value=""></property>
     * </bean>
     *
     * value中可以输入:字面量/${key}从环境变量、配置文件中获取值/#{SpEL}
     */
@Value("${person.last-name}")
private String lastName;
@Value("#{5*2}")
private Integer age;
@Value("true")
private Boolean boss;
松散语法:
lastName: zhangsan
last_name: zhangsan
last-name: zhangsan

以上三种都可以进行绑定

SpEL:
@Value("#{5*2}")
private Integer age;

支持表达式,可以进行计算

JSR303 数据校验
@ConfigurationProperties(prefix = "person")
@Validated

在 @ConfigurationProperties 后面加上 @Validated 注释,证明下面数据需要校验

例在字段上加上 @Email 注释,即说明 lastName 字段必须为邮件格式,否则不能运行成功

// lastName 必须是邮箱格式
@Email
private String lastName;
复杂类型封装

如果有 Map 或者 List 字段等复杂类型封装,@Value 是获取不到值的,故:

如果说,我们只要再某个业务逻辑中需要获取一下配置文件中的某个值,使用 @Value

如果说,我们专门编写一个 javaBean 来和配置文件进行映射,使用 @ConfigurationProperties

配置文件不管是 yml 还是 properties 都能获取到值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值