|
Post by account_disabled on Jan 31, 2024 8:28:42 GMT
目录 使用 @valid 一步完成对象图验证 没有@Valid的臃肿代码 使用@Valid验证对象图 概括 评论 Pause Next Unmute Current Time 0:07 / Duration 2:00 Fullscreen Java Bean Validation 的@Valid约束注释可确保验证对象时,验证会递归到所有用 注释的字段@Valid。这使得执行验证整个对象图的通常复杂的任务变得非常容易。 为了理解这篇文章,您应该了解如何使用 Java Bean Validation 的基础知识。 一步完成对象图验证@Valid 为了更好地理解为什么@Valid注释如此有价值的功能,我将首先向您展示如何验证不使用注释的对象图。 臃肿的代码没有@Valid A考虑一个约束类声明对另一组约束类的依赖关系的情况B。C我们这里只是一个简单的对象图,其中该关联上的每个协作者都有自己的一组验证约束。如果没有@Valid注释,验证图是一项相当繁琐的任务,因为A、B、 和的每个实例C都必须通过多次调用接口实现者validate()的方法来单独验证Validator。 考虑以下类在这种情况下,AccountProcessor实例及其实例PaymentService均未正确初始化,并且两者结合在一起将引发三个约束违规。 validate虽然验证按预期工作,但由于必须为每个实例单独调用,代码变得臃肿。 用于@Valid验证对象图 为了改进验证代码,让我 WhatsApp 号码数据 们重构该类PaymentService并将@Valid注释绑定到其AccountProcessor字段:该代码更加紧凑和精简,但会产生与之前较长的块相同的验证结果。每当 的实例PaymentService被验证时,AccountProcessor都会被递归地验证。我们一石二鸟! 从客户端代码的角度来看,验证显然是通过一次调用来执行的validate(),这是正确的方法,因为这巧妙地向开发人员隐藏了扫描整个对象图结构所涉及的复杂性。但在内部,当验证器从根对象到叶对象遍历树时,该方法实际上是递归调用的。此外,它的使用@Valid不仅限于类字段,因为它也可以在集合和数组中使用。 这使对象图验证变得简单。 使用 @valid 注释验证整个对象图(有人说树吗?) 概括 注释@Valid是 Bean Validation 的一个关键功能,因为它允许通过对验证器的单次调用来验证对象图。要使用它,所有应递归检查的字段都应使用 进行注释@Valid。 超越基本 bean 验证的另一个有趣功能是使用 和 验证各个字段和validateProperty()值validateValue()。当然,该 API 还可以提供更多功能,因此请务必查看官方文档并及时了解最新消息。 分享此文章 亚历杭德罗·杰瓦西奥 亚历杭德罗·杰瓦西奥 Alejandro Gervasio 是一位来自阿根廷的高级系统分析师,自 80 年代中期以来一直从事软件开发工作。他在 PHP 开发方面拥有超过 12 年的经验,在 Java 编程、面向对象设计以及大多数可用的客户端技术方面拥有 10 年的经验。 尼古拉普 小建议 验证 SitePoint 高级版 下一个 如何使用 CSS 对象适配和对象位置 如何使用 CSS 对象适配和对象位置 拉尔夫·梅森 使用 Java Bean 验证方法参数和返回值 使用 。
|
|