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

南通网站建设规划平台网站空间

南通网站建设规划,平台网站空间,wordpress10和3优先级,四川省城乡建设厅网站文章目录 一、使用二、常用注解三、Valid or Validated #xff1f;四、分组校验1. 分组校验的基本概念2. 定义验证组3. 应用分组到模型4. 在控制器中使用分组5. 总结 一、使用 要使用这些注解#xff0c;首先确保在你的 Spring Boot 应用的 pom.xml 文件中添加了 spring-bo… 文章目录 一、使用二、常用注解三、Valid or Validated 四、分组校验1. 分组校验的基本概念2. 定义验证组3. 应用分组到模型4. 在控制器中使用分组5. 总结 一、使用 要使用这些注解首先确保在你的 Spring Boot 应用的 pom.xml 文件中添加了 spring-boot-starter-validation 依赖。然后你可以将这些注解应用于你的模型类字段上。在你的控制器方法中你可以使用 Valid 或 Validated 注解来触发验证例如 PostMapping(/users) public ResponseEntity? createUser(Valid RequestBody User user) {// 如果存在验证错误会抛出异常// 正常业务逻辑 }在这个例子中如果 User 对象的字段不满足注解定义的验证规则Spring 将抛出一个异常你可以通过全局异常处理或控制器层的异常处理来处理这些异常并向用户返回适当的响应。 二、常用注解 spring-boot-starter-validation 依赖包引入了 Java Bean Validation API通常基于 Hibernate Validator 实现提供了一系列注解来帮助你对 Java 对象进行验证。以下是一些常用的验证注解及其含义和使用方式 NotNull: 确保字段不是 null。 public class User {NotNull(message 用户名不能为空)private String username;// 其他字段和方法 }NotEmpty: 确保字段既不是 null 也不是空对于字符串意味着长度大于0对于集合意味着至少包含一个元素。 public class User {NotEmpty(message 密码不能为空)private String password;// 其他字段和方法 }NotBlank: 确保字符串字段不是 null 且至少包含一个非空白字符。 public class User {NotBlank(message 邮箱不能为空且不能只包含空格)private String email;// 其他字段和方法 }Size: 确保字段字符串、集合、数组符合指定的大小范围。 public class User {Size(min 2, max 30, message 用户名长度必须在2到30之间)private String username;// 其他字段和方法 }Min 和 Max: 对数值类型字段设置最小值和最大值。 public class User {Min(value 18, message 年龄必须大于等于18)Max(value 100, message 年龄必须小于等于100)private int age;// 其他字段和方法 }Email: 确保字段是有效的电子邮件地址。 public class User {Email(message 无效的邮箱格式)private String email;// 其他字段和方法 }Pattern: 确保字符串字段匹配正则表达式。 public class User {Pattern(regexp ^[a-zA-Z0-9]$, message 用户名只能包含字母和数字)private String username;// 其他字段和方法 }Positive 和 PositiveOrZero: 确保数值字段是正数或者正数和零。 public class Product {Positive(message 价格必须是正数)private BigDecimal price;// 其他字段和方法 }三、Valid or Validated Valid 和 Validated 注解都用于数据验证但它们在使用和功能上有一些差异 Valid: 来源于 JSR 303/JSR 380 Bean Validation API。可以用在方法参数上以触发对传递给该方法的对象的验证。这通常在 Spring MVC 中用于验证带有 RequestBody 或 ModelAttribute 注解的参数。不支持验证组的概念这意味着不能控制验证的顺序或验证特定的子集。 示例 PostMapping(/users) public ResponseEntity? createUser(Valid RequestBody User user) {// 业务逻辑 }Validated(推荐): 是 Spring 的特有注解不是 JSR 303/JSR 380 的一部分。支持验证组允许您更灵活地指定在特定情况下应用哪些验证约束。例如可以根据不同的操作如创建、更新定义不同的验证规则。可以用在类型级别在类上和方法参数上。在类型级别使用时它会触发该类中所有带有验证注解的方法的验证。 示例 PostMapping(/users) public ResponseEntity? createUser(Validated RequestBody User user) {// 业务逻辑 }在实际使用中如果你需要简单的验证功能Valid 是一个很好的选择。如果你需要更复杂的验证逻辑比如验证组那么 Validated 更适合。此外Validated 可以应用在类级别从而对一个类的多个方法进行验证这在使用 Spring 服务层时非常有用。 四、分组校验 分组校验Group Validation是一种在 Java Bean Validation 中用于在不同上下文中应用不同验证规则的方法。这对于那些在不同情况下例如创建 vs 更新需要不同验证规则的对象特别有用。 1. 分组校验的基本概念 在分组校验中你可以定义多个接口通常为空来表示不同的验证组。然后你可以在验证注解中指定这些接口以表明该注解仅在验证特定组时应用。 例如你可能有一个User类其中某些字段在创建用户时是必需的但在更新用户时可能是可选的。 2. 定义验证组 首先定义两个空接口作为验证组 public interface OnCreate {} public interface OnUpdate {}3. 应用分组到模型 然后在你的模型类中使用这些接口作为验证注解的参数 public class User {NotNull(groups OnCreate.class)private Long id;NotBlank(groups {OnCreate.class, OnUpdate.class})private String username;Email(groups {OnCreate.class, OnUpdate.class})private String email;// 其他字段和方法 }在这个例子中id 字段仅在创建用户时需要验证OnCreate组而 username 和 email 字段在创建和更新用户时都需要验证。 4. 在控制器中使用分组 最后在你的控制器方法中使用 Validated 注解指定要应用的验证组 PostMapping(/users) public ResponseEntity? createUser(Validated(OnCreate.class) RequestBody User user) {// 创建用户的业务逻辑 }PutMapping(/users) public ResponseEntity? updateUser(Validated(OnUpdate.class) RequestBody User user) {// 更新用户的业务逻辑 }在这个例子中createUser 方法只会验证属于 OnCreate 组的字段而 updateUser 方法则只会验证属于 OnUpdate 组的字段。这样你就可以根据不同的操作自定义验证逻辑了。 5. 总结 通过使用分组校验你可以为同一个对象的不同操作设置不同的验证规则这在复杂应用中非常有用。这种方法提高了代码的灵活性和可维护性。
http://www.pierceye.com/news/931076/

相关文章:

  • 临海高端营销型网站建设地址建设网站有什么要素构成
  • wordpress 照片分享昌平网站建设推广优化seo
  • 石家庄做网站的公司有哪些做企业网站一般要多少钱
  • 电脑十大免费游戏网站万能搜索引擎入口
  • 菏泽网站建设公司排名有没有专做推广小说的网站
  • 东莞网站建设搭建因酷网站建设
  • 连云港百度推广网站建设ph域名网站
  • 网站建设营销模板网站开发招聘职位
  • 如何做网站的教程网站怎么建设以及维护
  • 信息港发布信息怎么做网站优化
  • 网页广告怎么关闭网站seo的主要优化内容
  • server2012做网站免费的图片做视频在线观看网站
  • 石狮网站建设折扣网站模板
  • 大连商城网站制作公司深圳网站改版公司
  • 网站备案需要的资料网站+做内容分发资格
  • 青岛模板自助建站百度怎么搜索图片
  • 国外做动运服装的网站安徽海通建设集团网站
  • 手机网站加百度商桥装修公司加盟免费
  • 网站开发背景知识wordpress第二步500
  • 114百事通做网站600郑州建站时间
  • 佛山网站建设科技公司南宁网页设计价格
  • 四字母net做网站怎么样如何开通微信小程序商城
  • 山西免费网站关键词优化排名婚恋网站开发
  • seo查询站长手机app制作网站模板
  • 微网站O2O平台平台开发怎么申请免费的网站
  • 加强网站互动交流平台建设自查p2p网站建设制作
  • 泉州网站建设平台成都百度seo公司
  • php响应式网站模板下载陕西建设集团招聘信息网站
  • 网站品牌推广设计网站建设单页
  • 秦皇岛酒店网站设计wordpress 退出 跳转