Java中的@Valid,@Validated和@PathVariable怎么用


这篇文章主要介绍“Java中的@Valid,@Validated和@PathVariable怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中的@Valid,@Validated和@PathVariable怎么用”文章能帮助大家解决问题。相同点:@Valid注解和 @Validated注解都是开启校验功能的注解不同点:@Valid注解 : 可以使用在方法,构造函数,方法参数和成员属性上@Validated注解 : 可以用在类型,方法和方法参数上. 但是不能用在成员属性上@Validated注解是Spring基于 @Valid注解的进一步封装,并提供比如分组,分组顺序的高级功能使用位置不同:级联校验: 也叫嵌套检测.嵌套就是一个实体类包含另一个实体类@Valid和可以用在成员属性的字段上,因此 @Valid可以提供级联校验示例:只是在方法参数前面添加 @Valid@Validated注解,不会对嵌套的实体类进行校验.要想实现对嵌套的实体类进行校验,需要在嵌套的实体类属性上添加 @Valid注解分组校验:对指定的组开启校验,可以分别作用于不同的业务场景中分组校验是由 @Validated注解中的value提供的groups:JSR 303校验注解中的分组方法groups示例:开启分组校验: 通过 @Validated注解的value方法对指定的分组开启校验校验方法添加groups的值来指定分组,只有使用 @Validated注解的value的值指定这个分组时,开会开启注解的校验数据的功能默认情况下,分组间的约束是无序的,但是在一些特殊的情况下可能对分组间的校验有一定的顺序比如第二组的分组的约束的校验需要依赖第一组的稳定状态来进行,此时,要求分组间的约束校验一定要有顺序分组校验顺序通过使用 @GroupSequence注解实现示例:使用 @GroupSequence注解指定分组校验顺序后,第一组分组的约束的校验没有通过后,就不会进行第二组分组的约束的校验在非实体类上添加 @Validated注解对非实体类进行校验在GlobalExceptionHandler中添加全局统一异常处理方法:@PathVariable的作用: 用来指定请求URL路径里面的变量@PathVariable@RequestParam的区别:@PathVariable用来指定请求URL中的变量@RequestParam用来获取静态的URL请求入参使用正则表达式校验 @PathVariable指定的路径变量@ControllerAdvice注解只能处理进入控制器方法抛出的异常BasicErrorController接口可以处理全局异常@PathVariable路径校验异常不是控制器方法抛出的,此时还没有进入控制器方法:BasicErrorController处理异常,比如404异常时,会跳转到 /error路径,此时会返回错误的html页面为了保证返回结果统一,继承BasicErrorController类,重写BasicErrorController接口中的错误处理方法使用场景:对某一个只能输入指定值的字段进行校验. 此时需要使用自定义注解实现定义自定义的注解 @Show :注意点:实现自定义的免费云主机域名校验逻辑返回boolean类型的校验结果获取到自定义注解中的相关的数据接口中第一个泛型参数表示的是自定义注解类接口中第二个泛型参数表示的是校验的属性的值的类型将自定义的注解和实现的校验类联系起来@Constraint注解:自定义校验注解类需要实现ConstraintValidator 接口initialize() 方法:isValid() 方法:自定义注解的使用:关于“Java中的@Valid,@Validated和@PathVariable怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: python怎么定义函数

这篇文章主要介绍“python怎么定义函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么定义函数”文章能帮助大家解决问题。 1、 通过def 来进行函数定义,本次定义一个num_sum()函数,并传入参…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/25 19:53
下一篇 04/25 19:53

相关推荐