Spring 5 中文解析之核心篇-数据绑定、校验和类型转换
作者
个人从事金融行业,就职过易极付、思建科技、某网约车平台等重庆一流技术团队,目前就职于某银行负责统一支付系统建设。自身对金融行业有强烈的爱好。同时也实践大数据、数据存储、自动化集成和部署、分布式微服务、响应式编程、人工智能等领域。同时也热衷于技术分享创立公众号和博客站点对知识体系进行分享。
CSDN:https://blog.csdn.net/liyong1028826685
微信公众号:
将验证视为业务逻辑有其优缺点,Spring提供的验证(和数据绑定)设计不排除其中任何一种。具体来说,验证不应与Web层绑定,并且应该易于本地化,并且应该可以插入任何可用的验证器。考虑到这些问题,Spring提供了一个Validator
契约,该契约既基本又可以在应用程序的每个层中使用。
数据绑定对于使用户输入动态绑定到应用程序的域模型(或用于处理用户输入的任何对象)非常有用。Spring提供了恰当地命名为DataBinder
的功能。Validator
和DataBinder
由validation
包组成,被主要的使用但不仅限于web层。
BeanWrapper
在Spring框架中是一个基本的概念并且在许多地方被使用到。然而,你大概不需要直接地使用BeanWrapper
。但是,由于这是参考文档,所以我们认为可能需要一些解释。我们将在本章中解释BeanWrapper
,因为如果你要使用它,那么在尝试将数据绑定到对象时最有可能使用它。
Spring的DataBinder
和低级别BeanWrapper
两者使用PropertyEditorSupport
实现去解析和格式化属性值。PropertyEditor
和PropertyEditorSupport
类型是JavaBeans规范的一部分并且在这个章节进行解释。Spring 3开始引入了core.convert
包,该包提供了常规的类型转换工具,以及用于格式化UI字段值的高级“ format
”包。你可以将这些包用作PropertyEditorSupport
实现的更简单替代方案。这些也会在这个章节讨论。
Spring通过安装基础设计和适配Spring的Validator
契约提供JavaBean校验。应用程序可以全局一次启用Bean验证,像在JavaBean校验中描述一样,并且仅将其用于所有验证需求。在Web层中,应用程序可以每个DataBinder
进一步注册控制器本地的Spring Validator
实例,如配置DataBinder
中所述,这对于插入自定义验证逻辑很有用。