网站做ssl证书有风险,南宁如何做百度的网站,给一个装修公司怎么做网站,商城网站微信支付接口申请引言
Spring Boot从配置文件中取值的方式有两种#xff0c;一种是批量注入ConfigurationProperties#xff0c;另一种是单独注入Value。
它们之间除了批量与单独取值的区别之外#xff0c;还存在着其他一些使用方式#xff0c;本篇博客将详细讲解这两种注解之间的区别和使…引言
Spring Boot从配置文件中取值的方式有两种一种是批量注入ConfigurationProperties另一种是单独注入Value。
它们之间除了批量与单独取值的区别之外还存在着其他一些使用方式本篇博客将详细讲解这两种注解之间的区别和使用方式。
一、区别比较 注
松散绑定指配置文件中的属性名与Bean中的属性名大小写不完全一致但是字母相同的情况。
比如bean中可以是Birth_day配置文件yaml中是 bir-thday、或 BIRTH_DAY、或b-i-r-t-h-d-a-y等。
SpEL指的是spring 表达式格式#{SpEL expression} 如#{2 * 10}
JSR303数据校验Jsr-303是一种注解方式的数据校验可以通过标记在属性上来判断从配置文件中映射的值是否符合我们的要求如NotNull字段不允许为空、Email字段格式必须是电子邮件这些注解一般都被放在javax.validation.constraints包下并且除了将这些校验注解标记在属性上另外还需要在被校验的类上标记Validated注解org.springframework.validation.annotation包下才能生效。
复杂类型指对象、Map、List等相对的是简单类型如字符串、数值、日期、布尔等。
二、Value 使用
如果在 配置文件中有属性配置可以直接通过Value注入到目标类中。
Value(${spring.datasource.url})
private String url;
三、ConfigurationProperties 使用
在企业实际开发中有时候需要一些和业务相关的配置且配置项较多于是我们就可以通过 ConfigurationProperties 来完成。
与 Value 的单兵作战不同ConfigurationProperties 可以和一个 完整的类进行映射因此会通过一个 XxxProperties 类来组织这些配置。
通常我们会为 ConfigurationProperties 添加 一个 prefix 属性这个属性最好与类名的Xxx保持一致 然后我们为配置类添加一些属性并在 配置文件中为它们进行赋值即可。
总结
ConfigurationProperties和Value的使用都是比较简单的。首先最重要的就是前者是批量导入属性后者是单独导入某一条属性。
他们的区别主要是对一些特性的支持如松散绑定、SpEL、JSR-303数据校验、复杂类型的封装。
关于如何在全局配置文件中定义复杂类型可以参考另一篇文章《Spring Boot————YAML配置文件》
更多Spring Boot技术分享可以关注博主也可以文末留言。