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

垂直门户网站怎么做代理注册公司怎么找

垂直门户网站怎么做,代理注册公司怎么找,网页设计与制作第三版,太原制作微信网站文章目录 Valid:专注单个对象的深度验证适用场景使用示例小结 Validated:聚焦接口分组的批量验证适用场景使用示例小结 主要区别总结如何选择?总结推荐阅读文章 在 Java 开发中,为了确保输入数据符合我们的要求,少不了…

文章目录

      • @Valid:专注单个对象的深度验证
        • 适用场景
        • 使用示例
        • 小结
      • @Validated:聚焦接口分组的批量验证
        • 适用场景
        • 使用示例
        • 小结
      • 主要区别总结
      • 如何选择?
      • 总结
      • 推荐阅读文章

在 Java 开发中,为了确保输入数据符合我们的要求,少不了数据验证这一步。 @Valid@Validated 是两个常见的验证注解,它们在 Spring 中常常出现,虽然名字差不多,但作用和使用场景却不太一样。

今天,我们就来聊聊 @Valid@Validated 的区别,看它们如何在验证世界里各司其职,搭配使用!


@Valid:专注单个对象的深度验证

@Valid 是 Java 中的标准验证注解,适用于单个对象的验证。它的职责很清晰——递归地验证这个对象,尤其适用于嵌套对象的场景。

比如,你的表单里有个 User 对象,User 里还有 Address 对象,那么在验证 User 时,如果用了 @Valid,它会一层层地深入到 Address,对所有字段进行完整验证。

适用场景

@Valid 更适合在字段上进行深层次的验证,比如:

  • 方法参数:在方法参数前标注 @Valid,让 Spring 验证参数。
  • 嵌套对象:在对象内部的字段上使用 @Valid,确保递归验证。
使用示例
public class User {@NotNullprivate String name;@Valid // 在嵌套对象 Address 上使用 @Validprivate Address address;
}public class Address {@NotBlankprivate String city;
}

在这个例子中,@Valid 会确保 User 对象的 address 字段也被验证。因此,如果 addresscity 是空字符串,也会报错。

小结

@Valid 是一种“全家桶”式的验证器,用来递归检查整个对象树的各个字段是否符合要求。


@Validated:聚焦接口分组的批量验证

@Validated 是 Spring 特有的验证注解,和 @Valid 不同的是,它的主要优势在于支持验证分组。分组验证的概念很简单:比如,我们在用户注册时要验证的内容和在用户更新资料时可能不同。@Validated 就允许你给验证分组,灵活地控制哪些验证规则在何时触发。

适用场景
  • 分组验证:需要在不同情况下使用不同的验证规则时,@Validated 是非常合适的选择。
使用示例

假设我们有两个验证场景,一个是 AddGroup(新增用户时的验证),一个是 UpdateGroup(更新用户时的验证),可以这样做:

public class User {@NotNull(groups = AddGroup.class)private String name;@NotBlank(groups = UpdateGroup.class)private String email;
}public interface AddGroup {}
public interface UpdateGroup {}

在控制器方法中,指定使用哪个分组:

@PostMapping("/addUser")
public void addUser(@Validated(AddGroup.class) @RequestBody User user) {// 仅验证 AddGroup 分组
}@PutMapping("/updateUser")
public void updateUser(@Validated(UpdateGroup.class) @RequestBody User user) {// 仅验证 UpdateGroup 分组
}

这样,通过 @Validated 注解和分组,你可以在不同操作中有选择地应用不同的验证逻辑。

小结

@Validated 是一位“分组专家”,适合复杂场景下的批量验证。


主要区别总结

注解验证对象支持分组验证适用场景
@Valid单个对象,递归验证深度验证嵌套对象
@Validated批量验证,可以选择性验证在不同业务场景下应用不同验证逻辑

如何选择?

  • 需要递归验证单个对象的各个字段(尤其是嵌套的复杂对象):用 @Valid
  • 需要在不同操作中选择性验证字段(比如新增和更新的验证规则不同):用 @Validated,并分配分组。

总结

  • @Valid 是“单体专家”,适合一层层深入对象结构,逐个检查字段。
  • @Validated 是“分组大拿”,让你灵活控制不同场景下的验证要求。

理解这两个注解的分工后,就可以让你的 Java 应用在数据验证上更严谨、更灵活啦!

推荐阅读文章

  • 由 Spring 静态注入引发的一个线上T0级别事故(真的以后得避坑)
  • 如何理解 HTTP 是无状态的,以及它与 Cookie 和 Session 之间的联系
  • HTTP、HTTPS、Cookie 和 Session 之间的关系
  • 什么是 Cookie?简单介绍与使用方法
  • 什么是 Session?如何应用?
  • 使用 Spring 框架构建 MVC 应用程序:初学者教程
  • 有缺陷的 Java 代码:Java 开发人员最常犯的 10 大错误
  • 如何理解应用 Java 多线程与并发编程?
  • 把握Java泛型的艺术:协变、逆变与不可变性一网打尽
  • Java Spring 中常用的 @PostConstruct 注解使用总结
  • 如何理解线程安全这个概念?
  • 理解 Java 桥接方法
  • Spring 整合嵌入式 Tomcat 容器
  • Tomcat 如何加载 SpringMVC 组件
  • “在什么情况下类需要实现 Serializable,什么情况下又不需要(一)?”
  • “避免序列化灾难:掌握实现 Serializable 的真相!(二)”
  • 如何自定义一个自己的 Spring Boot Starter 组件(从入门到实践)
  • 解密 Redis:如何通过 IO 多路复用征服高并发挑战!
  • 线程 vs 虚拟线程:深入理解及区别
  • 深度解读 JDK 8、JDK 11、JDK 17 和 JDK 21 的区别
  • 10大程序员提升代码优雅度的必杀技,瞬间让你成为团队宠儿!
  • “打破重复代码的魔咒:使用 Function 接口在 Java 8 中实现优雅重构!”
  • Java 中消除 If-else 技巧总结
  • 线程池的核心参数配置(仅供参考)
  • 【人工智能】聊聊Transformer,深度学习的一股清流(13)
  • Java 枚举的几个常用技巧,你可以试着用用
http://www.yayakq.cn/news/153472/

相关文章:

  • 大连做网站开发的公司深圳品牌建网站
  • 网站建设毕业设计摘要中国建设银行建银购网站
  • 做网站在哪里做公司做网站开发流程
  • 查网站开通时间百度广告投放平台叫什么
  • 做网站怎么保证商品是正品设计之家下载
  • 网站建设顶呱呱网站开发补充合同
  • 网站首页是什么意思企业建站电话多少
  • 建设电子书阅读网站网页设计做一个介绍自己的的网站
  • 运动鞋官方网站建设计划书网络推广的网站有哪些
  • 公司的网站建设注意点怎么做网站维护宣传
  • 网站建设的流程该怎么确定wordpress wp_loginout
  • 广州做网站公司seo销售话术开场白
  • 最新有限公司网站软件高端开发
  • 网站设计服务合同外贸建站效果
  • seo整站优化方案案例公司官网怎么弄
  • 网站开发需要用到的技术论文中小企业的网站建设
  • 珠海h5建站专门做当归的网站
  • 渭南做网站的公司电话做网站是不是要有数据库
  • 廊坊北京网站建设免费建站哪家有
  • 信阳做网站的公司江门网站制作费用
  • html5 网站开发语言如何比较网站
  • 皮革材料做网站怎样制作网站
  • 像wordpress一样的网站wordpress手机后台
  • 石狮市网站建设网络软文营销是什么意思
  • 海南百度推广公司电话夫唯seo系统培训
  • 互联网大赛建设网站策划书亚马逊做外贸英文网站
  • 商城网站开发的目的和意义网站推广技巧和方法
  • 网站空间计算wordpress中文注册
  • 江西建设安全网站怎样做网站快手刷粉
  • 怎样进网站ftp100个科技小制作