当前位置: 首页 > news >正文

Spring Reference

JSR-303/JSR-349 Bean Validation

在设置支持方面,Spring Framework 4.0支持Bean Validation 1.0(JSR-303)和Bean Validation 1.1(JSR-349),也将其改写成了Spring的Validator接口。

正如[5.8 Spring验证](http://ifeve.com/spring-5-validation/#5.8 Spring Validation)所述,应用程序可以选择一次性全局启用Bean验证,并使其专门用于所有的验证需求。

正如[5.8.3 配置DataBinder](http://ifeve.com/spring-5-validation/#5.8.3 Configuring a DataBinder)所述,应用程序也可以为每个DataBinder实例注册额外的SpringValidator实例,这可能有助于不通过使用注解而插入验证逻辑。

考虑将验证作为业务逻辑是有利有弊的,Spring提供了一种不排除利弊的用于验证(和数据绑定)的设计。具体的验证不应该捆绑在web层,应该容易本地化并且它应该能够插入任何可用的验证器。考虑到以上这些,Spring想出了一个Validator接口,它在应用程序的每一层基本都是可用的。数据绑定对于将用户输入动态绑定到应用程序的领域模型上(或者任何你用于处理用户输入的对象)是非常有用的。Spring提供了所谓的DataBinder来处理这个。ValidatorDataBinder组成了validation包,其主要用于但并不局限于MVC框架。

BeanWrapper是Spring框架中的一个基本概念且在很多地方使用。然而,你可能并不需要直接使用BeanWrapper。尽管这是参考文档,我们仍然觉得有一些说明需要一步步来。我们将会在本章中解释BeanWrapper,因为你极有可能会在尝试将数据绑定到对象的时候使用它。

Spring的DataBinder和底层的BeanWrapper都使用PropertyEditor来解析和格式化属性值。PropertyEditor概念是JavaBeans规范的一部分,并会在本章进行说明。Spring 3不仅引入了”core.convert”包来提供一套通用类型转换工具,还有一个高层次的”format”包用于格式化UI字段值。可以将这些新包视作更简单的PropertyEditor替代方式来使用,本章还会对此进行讨论。

转载于:https://www.cnblogs.com/cheneywxy/p/10666848.html

相关文章:

  • 【大数据应用技术】作业七|爬取全部的校园新闻
  • leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes...
  • 力扣——二叉树的层次遍历
  • vue工程 使用滚动组件 vue2-better-scroll 实现上拉加载 下拉刷新
  • Python多线程实例
  • loadrunner中web_reg_save_param和web_reg_save_param_ex的区别
  • 理解JavaScript【转】
  • python入门 第一节
  • 1255: 打怪升级(Java)
  • 随笔2
  • JavaSE--日志
  • 大二下周总结(7)
  • 前段支持
  • 二:Nexus知识
  • python-for显示奇偶数
  • [数据结构]链表的实现在PHP中
  • 【5+】跨webview多页面 触发事件(二)
  • crontab执行失败的多种原因
  • javascript面向对象之创建对象
  • PHP的Ev教程三(Periodic watcher)
  • Service Worker
  • Vue.js源码(2):初探List Rendering
  • 高程读书笔记 第六章 面向对象程序设计
  • 嵌入式文件系统
  • 手写双向链表LinkedList的几个常用功能
  • 学习笔记TF060:图像语音结合,看图说话
  • Spring第一个helloWorld
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #Linux(权限管理)
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (C语言)球球大作战
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (算法二)滑动窗口
  • (转)原始图像数据和PDF中的图像数据
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [AIGC 大数据基础]hive浅谈
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Angular] 笔记 18:Angular Router
  • [BZOJ2208][Jsoi2010]连通数
  • [C++]拼图游戏
  • [CSS]盒子模型
  • [DM复习]Apriori算法-国会投票记录关联规则挖掘(上)
  • [JavaEE系列] Thread类的基本用法
  • [JavaScript]_[初级]_[不使用JQuery原生Ajax提交表单文件并监听进度]
  • [JavaWeb]—前端篇
  • [leetcode]_Symmetric Tree
  • [MZ test.16]P2 math 乘方e
  • [NHibernate]一对多关系(关联查询)