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

Hibernate Validator 数据验证

Hibernate Validator不仅可以用于Controller层的参数验证,还可以在Service层、Repository层或任何其他层中使用。

手动验证

在任何地方都可以通过Validator接口手动触发验证:

public class ManualValidationExample {public void validateObject(Object obj) {// 获取验证器ValidatorFactory factory = Validation.buildDefaultValidatorFactory();Validator validator = factory.getValidator();// 执行验证Set<ConstraintViolation<Object>> violations = validator.validate(obj);// 处理验证结果if (!violations.isEmpty()) {for (ConstraintViolation<Object> violation : violations) {System.out.println(violation.getPropertyPath() + ": " + violation.getMessage());}throw new IllegalArgumentException("Validation failed");}}
}

在Service层使用

在方法调用时进行验证,首先在类上添加@Validated注解以启用方法验证

@Service
@Validated
public class UserService {public void createUser(@NotNull @Valid User user) {// 业务逻辑}public void updateEmail(@Min(1) Long userId, @NotBlank @Email String email) {// 业务逻辑}
}

在Entity/DTO中使用

Hibernate Validator可以直接用于任何Java类:

public class Product {@NotNullprivate Long id;@NotBlank@Size(max = 100)private String name;@Positiveprivate BigDecimal price;// getters and setters
}
http://www.xdnf.cn/news/942751.html

相关文章:

  • pymongo配置事务环境并封装事务功能
  • JDBC基础关键_001_认识
  • Spring类型转换器相关接口和实现原理
  • 【JavaScript】利用`localStorage`实现多窗口数据交互同步【附完整源码】
  • OD 算法题 B卷【删除字符串中出现次数最少的字符】
  • 如何禁用windows server系统自动更新并防止自动重启
  • 推理式奖励模型:使用自然语言反馈改进强化学习效果
  • 卫星接收天线G/T值怎么计算?附G/T计算excel表格链接
  • 打卡day48
  • 12.7Swing控件5 JProgressBar
  • Spring AI中使用ChatMemory实现会话记忆功能
  • 算法打卡第18天
  • 【CUDA 】第5章 共享内存和常量内存——5.3减少全局内存访问(2)
  • Linux 环境配置
  • 【立体匹配】:双目立体匹配SGBM:(1)运行
  • 深入解析JavaScript构造函数与原型链
  • JavaScript 自定义对象详解
  • AI医生时代来临!o1模型在医疗诊断中超越人类医生
  • 查看进程线程的方法
  • 进制符号表示
  • 【阿里巴巴 x 浙江大学】信息与交互设计 - 信息设计漫谈
  • AIGC 基础篇 Python基础 02
  • MS8312A 车规 精密、低噪、CMOS、轨到轨输入输出运算放大器,用于传感器、条形扫描器
  • arxir网址自动转向国内镜像
  • 【DTOF传感器】光子飞行时间传感技术
  • 通信之光端机
  • 苏超 - 江苏省城市足球联赛
  • Angular中Webpack与ngx-build-plus 浅学
  • 【刷题模板】链表、堆栈
  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月8日第102弹