Valid不生效

文章讲述了在微服务环境中,遇到ApplyAsymKeyReq的校验问题,发现`@Valid`默认不验证来自`groups=AddGroup.class`的属性。为解决冲突,团队决定移除`groups`引用,改用新建DTO进行校验,以简化代码并降低复杂度。
摘要由CSDN通过智能技术生成

背景,最近同事告知,我写的校验不生效,让排查

1、代码如图

控制器:
在这里插入图片描述
请求对象
在这里插入图片描述

2、问题

ApplyAsymKeyReq对象的校验没有问题,为何父类BaseReq的appId属性校验不生效?
排查
1、是否Getter方法或者继承导致的检验不生效?否
2、是否检验器校验前,属性值已被其它业务注入值?否
3、检查代码片段“ groups = AddGrop.class ”对其影响?是

3、 结论:

@Valid默认不对代码片段 "grops = AddGroup.class " 注释的属性进行校验。

4、思考处理方案:

由于同事的写法如下,需要使用groups属性,而默认的@Valid不需要,二者冲突。
故涉及到groups属性去留二选一问题。
于是将结论发送到开发群里,商量最后选择哪一种校验方式。
在这里插入图片描述

5、最终处理方案:

放弃ValidatorUtils.validateEntity(req,AddGroup.class)用法,
移除grops = AddGroup.class ,使得@Validated @Valid注解生效。

另外:
由于本项目是微服务,并非单体式的业务密集型应用,分组校验的使用场景并不广泛。
大部分校验,新建DTO即可,亦降低代码维护复杂度。(有任何不同见解欢迎留言)

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*crzep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值