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 && str!=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 条评论