spring boot validated不起作用
时间: 2023-05-28 12:03:12 浏览: 590
可能是以下几个原因导致的:
1. 未正确使用注解
在实体类中,需要使用`@Validated`注解来确保验证器能够正常工作。同时,在需要验证的字段上,需要使用`@NotNull`、`@NotEmpty`等注解。
2. 未引入正确的依赖
需要引入`spring-boot-starter-validation`依赖来确保正确的验证器和注解可用。
3. 验证器未被正确配置
在`application.properties`或`application.yml`中,需要配置以下属性:
```
spring.mvc.throw-exception-if-no-handler-found=true
spring.web.resources.add-mappings=false
```
同时,在`@SpringBootApplication`注解标记的类中,需要添加`@EnableWebMvc`注解。
4. 验证器未被正确使用
在Controller中,需要使用`@Valid`注解来启用验证器,并在方法参数中添加`BindingResult`来获取验证结果。如果验证失败,可以在`BindingResult`中获取错误信息。
如果以上方法均不能解决您的问题,建议查看相关日志并进行调试。
相关问题
Spring Boot 中 @Valid 和 @Validated 注解有何区别
@Valid和@Validated注解在Spring Boot中用于验证输入数据,但它们有一些区别。
@Valid注解是JSR-303规范中定义的注解,用于验证Java Bean中的属性。在Spring Boot中,@Valid注解可以用于验证请求体中的数据。如果请求体中的数据是一个Java Bean对象,可以使用@Valid注解来验证该对象的属性值是否符合要求。\[1\]
@Validated注解是Spring框架中的一个注解,它是JSR-303规范的扩展。@Validated注解可以用于在方法级别上校验方法参数。它可以用于验证请求参数和请求体中的数据。@Validated注解可以用于方法级别和类级别上,用于验证方法参数和类属性。\[4\]
在类级别上使用@Validated注解,需要在类上添加该注解。这样可以对整个类的方法参数进行验证。\[3\]
在方法级别上使用@Validated注解,需要在方法参数上添加该注解。这样可以对特定方法的参数进行验证。\[5\]
总结来说,@Valid注解用于验证Java Bean中的属性,而@Validated注解用于在方法级别上校验方法参数。@Validated注解是@Valid注解的扩展,可以用于验证请求参数和请求体中的数据。\[2\]\[4\]
#### 引用[.reference_title]
- *1* *2* *3* *4* *5* [Spring Boot中的@Validated和@Valid](https://blog.csdn.net/jam_yin/article/details/131207998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
spring boot validation
Spring Boot Validation 是一个用于验证请求参数的框架,它可以在控制器层面对请求参数进行校验,避免了在业务逻辑中进行冗余的参数校验。Spring Boot Validation 基于 JSR-303 规范,可以使用注解的方式来实现参数校验,例如 @NotNull、@NotEmpty、@Size 等等。在控制器方法中,我们可以使用 @Validated 注解来启用参数校验,如果参数校验失败,会抛出 MethodArgumentNotValidException 异常,我们可以通过自定义异常处理器来对异常进行处理。
阅读全文