Spring 数据绑定
Spring 数据绑定
Spring 数据绑定有那些使用场景
Spring BeanDefinition 创建 Bean 实例
Spring 的数据绑定(
org.springframework.validation.DataBinder)Spring Web 参数绑定 (
org.springframewok.web.bind.WebDataBinder)
Spring 数据绑定的组件
标准组件
org.springframework.validation.DataBinder
Web 组件
org.springframework.web.bind.WebDataBinderorg.springframework.web.bind.ServletRequestDataBinderorg.springframework.web.bind.WebReqeustDataBinderorg.springframework.web.bind.WebExchangeDataBinder(Sine 5.0)
org.springframework.validation.DataBinder
核心属性
属性 | 说明 |
|---|---|
target | 管理目标 Bean |
objectName | 目标 Bean 名称 |
bindResult | 属性绑定结果 |
typeConverter | 类型转换 |
conversionService | 类型转化服务 |
messageCodeResolver | 校验错误文案处理器 |
validators | 关联的 Bean Validator 实例集合 |
核心方法

元数据:org.springframework.beans.PropertyValues
来源
特征 | 说明 |
|---|---|
数据来源 | BeanDefinition,主要来源于 XML 资源配置 |
数据结构 | 一个或多个 |
成员结构 | Property包括属性名称,属性值(包括原始值和转化后的值) |
常见实现 |
|
Web 拓展实现 |
|
相关生命周期 |
|
org.springframework.validation.DataBinder 控制参数
参数名称 | 说明 |
|---|---|
ignoreUnkonwFields | 是否忽略未知字段: |
ignoreInvalidaFields | 是否忽略非法字段: |
autoGrowNestedPaths | 是否自动绑定嵌套路径 : |
allowedFields | 绑定字段白名单: |
disalloweFields | 绑定字段白名单; |
requiredFields | 必须绑定的字段: |
Spring 底层替换Java Beans 实现
JavaBeans
属性(Property)
java.beans.PropertyEditor
方法(Method)
事件(Event)
表达式(Expression)
Spring 的替代实现org.springframework.beans.BeanWapper
属性(Property)
java.beans.PropertyEditor
嵌套属性路径(Nested Path)
org.springframework.beans.BeanWrapper
Spring底层JavaBeans基础设施的中心化接口通常不会经常使用,简介用于
org.springframework.beans.factory.BeanFactory和org.springframework.validation.DataBinder提供标准的
JavaBeans分析和操作,能够单独或者批量存储JavaBeans的属性(properties)支持嵌套属性路径(Nested Path)
实现类是:
org.springframework.beans.BeanWrapperImpl
标准的JavaBeans是如何操作属性的
API | 说明 |
|---|---|
java.beans.Introspector | Java Beans 内省 API |
java.beans.BeanInfo | java Beans 元信息 API |
java.beans.BeanDescriptor | Java Beans 信息描述符 |
java.beans.PropertyDescriptor | Java Beans 属性描述符 |
java.beans.MethodDescriptor | Java Beans 方描述符 |
java.beans.EventSetDescriptor | Java Beans 事件集合 |
org.springframewrok.validation.DataBinder 和org.springframewok.beans.BeanWrapper
bind 方法生成
org.springframework.validation.BeanPropertyBindingReusltorg.springframework.validation.BeanPropertyBingdingReuslt关联org.springframework.beans.BeanWrapper
面试题: Spring 数据绑定的API是什么
org.springframework.validation.DataBinder
面试题: org.springframework.beans.BeanWrapper和 JavaBeans之间的关系
org.springframework.beans.BeanWrapper是Spring底层JavaBeans基础设施中心接口





