在Spring Boot中,@Validated注解用于驗證方法參數的有效性。它可以應用在Controller的請求處理方法或Service層的方法上。
使用@Validated注解的步驟如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
@RestController
@Validated
public class MyController {
@GetMapping("/validate")
public String validate(@RequestParam("param1") @NotNull String param1,
@RequestParam("param2") @Min(18) int param2) {
// 處理請求
return "ok";
}
}
在上面的例子中,@RequestParam(“param1”) @NotNull表示param1參數不能為空,@RequestParam(“param2”) @Min(18)表示param2參數的最小值為18。
@ControllerAdvice
public class ValidationExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public ResponseEntity handleValidationExceptions(MethodArgumentNotValidException ex) {
// 處理驗證失敗的情況
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Validation error");
}
}
在上面的例子中,@ExceptionHandler(MethodArgumentNotValidException.class)表示當發生驗證失敗的情況時,調用handleValidationExceptions()方法來處理。
這樣就可以在Spring Boot中使用@Validated注解來驗證方法參數的有效性了。