【Spring Boot】Bean字段校验-JSR303
参考:
https://cloud.tencent.com/developer/article/1790411 实现了国际化的参数校验
开发过程:
1、Bean定义字段校验规则:
2、Controller引入@Valid(来自)或@Validated(来自org.springframework.validation.annotation)触发校验
样例如下:
或
国际化校验提示
背景知识:
1. Bean Validation 规范:
JSR-303 1.0
JSR 349 1.1
JSR 380 2.0
2. Hibernate Validator
实现Bean Validation规范
部分注解:
使用方式
3. spring-context
Spring validation对hibernate-validation进行了二次封装,显示校验validated bean时,你可以使用Spring validation或者hibernate validation。
spring validation另一个特性,便是在springmvc模块中添加了自动检验,并将校验信息封装进了特定的类中,位于org.springframework.validation包下。
1、build.gradle
2、 定义Bean初始化时,对字段进行校验
1)定义@Validate注解
2、定义BeanValidationPostProcessor: 在bean初始化时调用 Hibernate Validator进行校验
4. spring-boot-starter-validation
build.gradle定义
补充
1、@Valid和@Validate都可触发校验的原理
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
1)判断是否对应关键字是否存在
2)触发binder.validate(内部会调用Hibernate Validator)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
2021-08-19 【Bean校验】
2018-08-19 【设计模式】原则与案例