springboot集成JSR参数校验:

1. 导入maven

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

2. 加上注解

  在controller入参加入注解, 在参数内加入注解

基于springboot的spring JSR validation 后台参数验证

基于springboot的spring JSR validation 后台参数验证

还有email等校验, 查看文档即可

但在实际工作中, 框架提供的往往应付不了业务的复杂, 所以这里我们自己添加校验

 

3.

1)注解类

基于springboot的spring JSR validation 后台参数验证

2).业务实现类,  与注解类中 alidatedBy参数中类名要 一致, 其次实现 ConstraintValidator类, 重写方法,   具体校验规则由工具提供

基于springboot的spring JSR validation 后台参数验证

基于springboot的spring JSR validation 后台参数验证

这样我们就可以用自己的注解了.

基于springboot的spring JSR validation 后台参数验证

 

4.到这里, jsr的参数校验已经完成, 但有一个问题,  校验之后是抛出的异常, 很烦,  无论是B/S或者C/S,  为了能有更友好的返回值, 所以要处理下异常,  BindException是抛出的异常类型

基于springboot的spring JSR validation 后台参数验证

be.getAllError()是个异常数组, 所有的异常信息都在其中, 这个异常信息的ObjectError, 用起来不太方便, 可以把异常信息封装一个自己喜欢的bean.

 

相关文章: