Bean属性校验
Servlet是一个规范,Tomcat实现的
JDBC是一个规范,各个厂商实现的
JSR303也是一个规范,有人提供实现
我们只需要面向接口编程即可。
一般来说,以javax开头的groupId,都是规范
JSR303提供规范,其余框架实现规范。
- 添加JSR303规范,在SpringBoot中不用给出版本号
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency>
- 添加实现技术
<dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </dependency>
在需要校验的Bean上开启校验功能@Validated
,然后使用JSR303规范中的注解去定义校验规则就好了。
@Data @Component @ConfigurationProperties(prefix = "my-server") @Validated public class DataSourceConfigBean { private String url; @Max(value = 5000, message = "最大不能超过5000") @Min(value = 500, message = "最小不能低于500") private int timeout; }
当属性注入时,就会进行属性校验,测试一下
关于常用的校验规则有哪些?可以进入到JSR303注解包javax.validation.constraints
下查看,这里给出一些常用的。
JSR303中常用的注解有:
注解 | 说明 |
---|---|
@AssertFalse | 断言为false |
@AssertTrue | 断言为true |
@Max | 整型最大值限制 |
@Min | 整型最小值限制 |
@DecimalMax | 适用于BigDecimal和String类型的属性 |
@Null | 值为null |
@NotNull | 不为Null |
@NotBlank | 不为空 |
@Pattern | 正则校验 |
@Digits | 是数字 |
是邮箱 | |
@Negative | 是负数 |
@Postiive | 是正数 |
@Future | 未来的时间 |
@Past | 过去的时间 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现