前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring学习笔记

Spring学习笔记

原创
作者头像
祁77
发布2020-12-21 09:57:11
3980
发布2020-12-21 09:57:11
举报

1. Springboot @NotBlank参数校验失效

最近开发过程中,发现在同一个微服务里有些dto的@Validated和@NotBlank生效,而另一些中却不起作用,经过排查后发现可能的原因有如下:

  • springboot版本问题

进过新旧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

2. Cmq的TCP SDK 使用时的依赖冲突问题

在8月初次使用cmq的tcp sdk时使用如下版本的mysql-connector:

后续更改为:

使用cmq包如下异常:

在未更改代码的情况下,出现如上异常,怀疑是否出现jar包冲突,于是采用Maven Helper,进行排查,发现是由于:

即:CMQ tco-client-sdk 1.1.1依赖,只支持低版本的protobuf

解决方案:排包

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Springboot @NotBlank参数校验失效
  • 2. Cmq的TCP SDK 使用时的依赖冲突问题
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档