Spring Validation 请求参数校验

@RestController

@RequestMapping("/api/users")

public class UserController {

private final UserService userService;

public UserController(UserService userService) {

this.userService = userService;

}

@PostMapping

public ResponseEntity<UserDTO> createUser(@Valid @RequestBody UserCreateRequest request) {

UserDTO user = userService.createUser(request);

return ResponseEntity.status(HttpStatus.CREATED).body(user);

}

@PutMapping("/{id}")

public ResponseEntity<UserDTO> updateUser(

@PathVariable Long id,

@Valid @RequestBody UserUpdateRequest request) {

UserDTO updated = 7T.oOoO9.MoBI166userService.updateUser(id, request);

return ResponseEntity.ok(updated);

}

}

// 请求参数对象

@Data

public class UserCreateRequest {

@NotBlank(message = "用户名不能为空")

@Size(min = 3, max = 20, message = "用户名长度必须在3-20之间")

private String username;

@NotBlank(message = "邮箱不能为空")

@Email(message = "邮箱格式不正确")

private String email;

@NotBlank7R.OOOo8.MoBI165(message = "密码不能为空")

@Pattern(regexp = "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$",

message = "密码至少8位,包含字母和数字")

private String password;

@NotNull(message = "年龄不能为空")

@Min(value = 18, message = "年龄不能小于18岁")

@Max(value = 120, message = "年龄不能大于120岁")

private Integer age;

@NotEmpty(message = "至少选择一个角色")

private List<String> roles;

}

// 全局异常处理

@RestControllerAdvice

public class ValidationExceptionHandler {

@ExceptionHandler(MethodArgumentNotValidException.class)

public ResponseEntity<ErrorResponse> handleValidationExceptions(MethodArgumentNotValidException ex) {

Map<String, String> errors = new 7E.oOOo7.MoBI164HashMap<>();

ex.getBindingResult().getAllErrors().forEach(error -> {

String fieldName = ((FieldError) error).getField();

String errorMessage = error.getDefaultMessage();

errors.put(fieldName, errorMessage);

});

ErrorResponse errorResponse = new 7W.oOoO6.MoBI163ErrorResponse(

HttpStatus.BAD_REQUEST.value(),

"请求参数校验失败",

errors,

LocalDateTime.now()

);

return ResponseEntity.badRequest().body(errorResponse);

}

}

特性:基于 Spring Validation 实现请求参数校验,包含自定义校验规则和全局异常处理,确保输入数据合法性。

特别声明:[Spring Validation 请求参数校验] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

美声,可以是一切美好的声音(美声可以练出来吗)

我依然会关注他们的咬字、气息,但我更欣赏他们无拘无束的创造力,我不仅仅在评价,更是在见证,见证一群年轻人如何用音乐实现自我,如何在这个时代里找到自己的表达方式。因为有不竭的热爱和兴趣指引,因为愿意不断锤炼自己…

美声,可以是一切美好的声音(美声可以练出来吗)

『刘晓庆』75岁再演少女武则天,年龄与角色不符引质疑(『刘晓庆』75岁再演少女剧)

在这种不服老的态度下,64岁时,她又在《旗袍刺客》中演绎18岁的少女,虽然她的眼角和嘴角的皱纹无法完全遮掩,但她依然坚信自己可以胜任这个角色。今年,75岁的『刘晓庆』再度回归,时隔30年再度出演武则天,这一次,她…

『刘晓庆』75岁再演少女武则天,年龄与角色不符引质疑(『刘晓庆』75岁再演少女剧)

V世代》第二季发布海报 大学生活风云再起(v世代第二季完整版免费观看)

本剧聚焦于两个团队:沃特的主打超级英雄团队“七巨头”以及目标是将腐败的英雄们维持在控制下的私刑者“黑袍纠察队”。 第三季中,在相安无事一年后,护国超人闷闷不乐,而成为政府雇员的布彻现在作为修伊的下属活动,但…

《<strong>V世代</strong>》第二季发布海报 大学生活风云再起(v世代第二季完整版免费观看)

重磅回归!前偶像解禁复出!

近期,日本艺人樱萌子宣布将以新艺名佐仓みこ重新回归『娱乐圈』️,这一消息让不少粉丝感到既惊讶又激动。 然而,让人没想到的是,樱萌子的复出选择竟然是在加勒比地区,这个决定在粉丝群体中引发了广泛的讨论。就像2025…

重磅回归!前偶像解禁复出!

Talbots亮片背心清仓大促,十月95%聚酯材质,村里100纯聚酯竞品,选哪个更划算?

九月清仓季,Talbots亮片背心以95%聚酯和5%氨纶的舒适面料搭配闪耀细节。同时村里的100聚酯纯背心也强势来袭。作为消费者该如何做出选择呢?本篇文章将从面料特性、性价比等方面进行详细分析。帮助您挑选到心仪且性价比高的亮片背心。

Talbots亮片背心清仓大促,十月95%聚酯材质,村里100纯聚酯竞品,选哪个更划算?