springboot中使用@NotNull@NotBlank注解无效解决方法

我们在使用@NotNull注解的时候,一般在实体类的字段上加上@NouNull注解:

然后在controller类中的方法上添加上@Valid的注解(我们还可以给bean后紧跟一个BindingResult,就可以获取到校验的结果信息)

但是在进行测试的时候发现我们添加的注解失效了,原因如下:

springboot 2.3之前的集成在spring-boot-starter-web里了,所以不需要额外引入包

springboot 2.3之后需要引入 spring-boot-starter-validation

 

引入如下依赖就行:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

若引起el依赖冲突:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.glassfish</groupId>
                    <artifactId>jakarta.el</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

 

如果在引入上面依赖之后还是不能解决问题的话,再添加依赖(建议使用7.0.1.final及以上版本)

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>7.0.1.Final</version>
</dependency>

如果已经引入了hibernate-validator依赖,还是无效,可以尝试在配置文件添加以下参数:

spring.mvc.hiddenmethod.filter.enabled=true

上面这些就应该可以解决这个问题了

实在还不行就降低springboot版本就可以了。

https://www.jb51.net/program/294717nah.htm

 

posted @ 2024-06-05 17:38  wq9  阅读(382)  评论(0)    收藏  举报