扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

springboot涓瑻Validated鎬庝箞浣跨敤

扬州沐宇科技
2024-01-19 16:08:06
springboot

鍦⊿pring Boot涓紝@Validated娉ㄨВ鐢ㄤ簬楠岃瘉鏂规硶鍙傛暟鐨勬湁鏁堟€с€傚畠鍙互搴旂敤鍦–ontroller鐨勮姹傚鐞嗘柟娉曟垨Service灞傜殑鏂规硶涓娿€?/p>

浣跨敤@Validated娉ㄨВ鐨勬楠ゅ涓嬶細

  1. 寮曞叆渚濊禆锛氬湪pom.xml鏂囦欢涓坊鍔爏pring-boot-starter-validation渚濊禆銆?/li>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  1. 鍦–ontroller鎴朣ervice鏂规硶涓婃坊鍔燖Validated娉ㄨВ銆?/li>
@RestController
@Validated
public class MyController {
    @GetMapping("/validate")
    public String validate(@RequestParam("param1") @NotNull String param1, 
                           @RequestParam("param2") @Min(18) int param2) {
        // 澶勭悊璇锋眰
        return "ok";
    }
}

鍦ㄤ笂闈㈢殑渚嬪瓙涓紝@RequestParam(鈥減aram1鈥? @NotNull琛ㄧずparam1鍙傛暟涓嶈兘涓虹┖锛孈RequestParam(鈥減aram2鈥? @Min(18)琛ㄧずparam2鍙傛暟鐨勬渶灏忓€间负18銆?/p>

  1. 閰嶇疆楠岃瘉澶辫触鐨勫鐞嗗櫒锛堝彲閫夛級锛氬彲浠ュ畾涔変竴涓叏灞€鐨勫鐞嗗櫒鏉ュ鐞嗛獙璇佸け璐ョ殑鎯呭喌锛屾瘮濡傝繑鍥為敊璇俊鎭粰瀹㈡埛绔€?/li>
@ControllerAdvice
public class ValidationExceptionHandler {
    @ExceptionHandler(MethodArgumentNotValidException.class)
    @ResponseBody
    public ResponseEntity handleValidationExceptions(MethodArgumentNotValidException ex) {
        // 澶勭悊楠岃瘉澶辫触鐨勬儏鍐?/span>
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Validation error");
    }
}

鍦ㄤ笂闈㈢殑渚嬪瓙涓紝@ExceptionHandler(MethodArgumentNotValidException.class)琛ㄧず褰撳彂鐢熼獙璇佸け璐ョ殑鎯呭喌鏃讹紝璋冪敤handleValidationExceptions()鏂规硶鏉ュ鐞嗐€?/p>

杩欐牱灏卞彲浠ュ湪Spring Boot涓娇鐢ˊValidated娉ㄨВ鏉ラ獙璇佹柟娉曞弬鏁扮殑鏈夋晥鎬т簡銆?/p>

扫码添加客服微信