@validated length
时间: 2025-06-29 11:01:26 浏览: 2
### 关于 `@Validated` 注解中的长度验证
当使用 `@Validated` 进行参数校验时,对于字符串类型的字段可以应用 `@Size` 或者 `@Length` 来指定允许的最大最小字符数。需要注意的是,在实际开发过程中更常用的是来自 Hibernate Validator 实现下的 `@Size` 而不是 `@Length`,因为前者是 JSR 303/JSR 349 标准的一部分[^1]。
下面展示如何在一个数据传输对象 (DTO) 中定义带有长度约束的字段:
```java
import javax.validation.constraints.Size;
public class UserRegistrationRequest {
@Size(min = 6, max = 20, message = "用户名长度应在6到20之间")
private String username;
// getter and setter methods...
}
```
在这个例子中,如果传入的 `username` 字符串长度不在规定的范围内,则会触发相应的错误消息返回给客户端应用程序。
为了处理这些异常情况并提供友好的反馈信息,可以在全局配置文件里加入如下代码片段来捕获所有的方法论参数不匹配异常以及违反约束条件的情况:
```java
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
@ControllerAdvice
public class GlobalExceptionHandler {
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public ErrorInfo processValidationError(MethodArgumentNotValidException ex){
// 构建自定义响应体逻辑...
}
}
```
上述代码展示了如何利用 `@ControllerAdvice` 结合 `@ExceptionHandler` 处理由 `@Validated` 引发的各种验证失败情形,并给予恰当的状态码与提示信息回应用户请求[^2]。
#### 验证规则总结
- 使用 `@Size` 注解设置最大和最小区分大小写敏感度不同的字符串长度范围。
- 当输入不符合设定的标准时,自动抛出 MethodArgumentNotValidException 异常。
- 可以通过全局异常处理器统一管理所有此类异常的发生场景。
阅读全文
相关推荐


















