最近开发过程中,发现在同一个微服务里有些dto的@Validated和@NotBlank生效,而另一些中却不起作用,经过排查后发现可能的原因有如下:
进过新旧pom.xml对比,发现在springboot版本为 2.3.2.RELEASE时如下依赖二者缺一不可:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator}</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${javax.validation.version}</version>
</dependency>
如果仅在dto中使用@NotBlank等著解释,但在Controller方法的入参前未加@Validated,那也不会生效, 正确使用方法如下:
备注: @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)
@NotEmpty://CharSequence, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0
@NotBlank://String 不是 null 且去除两端空白字符后的长度(trimmed length)大于 0
在8月初次使用cmq的tcp sdk时使用如下版本的mysql-connector:
后续更改为:
使用cmq包如下异常:
在未更改代码的情况下,出现如上异常,怀疑是否出现jar包冲突,于是采用Maven Helper,进行排查,发现是由于:
即:CMQ tco-client-sdk 1.1.1依赖,只支持低版本的protobuf
解决方案:排包
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。