0
点赞
收藏
分享

微信扫一扫

@NotBlank与@NotNull等注解失效的解决办法

我之前使用的SpringBoot的1.4.3的版本,无论我怎么修改都无法解决这个问题,查看了诸多的资料也于事无补,无奈之下只能升级了SpringBoot的版本成功解决了这个问题。

首先先看一下1.4.3版本的代码,我再类上加上@Validated注解,校验还是失效的,后来我又再入参处又加上@Valid注解还是校验失效的。后来又引入各种jar包还是没有解决,

@RestController
@Validated
public class SelectDateController {
@RequestMapping("/testThree")
public String testDynamicSql(@NotNull String str,
@NotBlank String money)
{
if (money != null null) {
selectDateService.selAllDateTwo(money);
}
List<JSONObject> jsonObjectList = selectDateService.selAllDateThree();
jsonObjectList.forEach(item->{
System.out.println(item);
});
return "success";
}

下面进入正题,升级成2.6.3的版本后,引入了以下依赖,然后再类上加上@Validated注解成功解决了这个问题 

注意:一定要再类上加 在方法与入参处加都不能成功的进行校验并且使用@Valid注解也会校验失败的。

        <!--        Spring boot 2.3之前可以直接使用@NotNull@NotBlank等注解
2.3以后删除了hibernate-validator的依赖所以需要加下面的注解
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

代码如下

@RestController
@RequestMapping("test")

@Validated
public class TestController {
@RequestMapping("/testNot")
public String test(@NotNull(message = "msg不能为空") String msg,
@NotBlank String str, @Size(min = 6) String size)
{
System.out.println(msg);
System.out.println(str);
System.out.println(size);
System.out.println("我的注解终于可以使用了");
return "success";
}
}

不管在那个版本,@Validated引入的都是org.springframework.validation.annotation.Validated;这个包下的,虽然解决了问题,但是没彻底弄明白,如果有大佬看到,请赐教。祝各位身体健康

举报

相关推荐

0 条评论