自己做的個人網(wǎng)站無法備案廣東東莞今日最新消息
在 Java 開發(fā)中,數(shù)據(jù)校驗是確保應(yīng)用程序的數(shù)據(jù)完整性和一致性的重要步驟。Java 提供了一系列注解來簡化數(shù)據(jù)校驗的過程,以下是一些常用的字段校驗注解及其示例代碼:
- @NotNull
@NotNull 用于確保字段不為 null,適用于任何類型的字段,包括基本數(shù)據(jù)類型和對象引用。
import javax.validation.constraints.NotNull;public class Example {@NotNull(message = "字段不能為空")private String name;// Getters and setters
}
- @NotBlank
@NotBlank 用于確保字符串字段不為空且長度大于 0,僅適用于字符串類型的字段。
import javax.validation.constraints.NotBlank;public class Example {@NotBlank(message = "姓名不能為空或者空字符串")private String name;// Getters and setters
}
- @NotEmpty
@NotEmpty 用于確保集合、數(shù)組、Map 或者字符串類型的字段不為空。
import javax.validation.constraints.NotEmpty;
import java.util.List;public class Example {@NotEmpty(message = "列表不能為空且至少包含一個元素")private List<String> items;// Getters and setters
}
- @Min 和 @Max
@Min 和 @Max 用于確保數(shù)字字段的值在指定的范圍內(nèi)。
import javax.validation.constraints.Min;
import javax.validation.constraints.Max;public class Example {@Min(value = 18, message = "年齡不能小于18歲")@Max(value = 100, message = "年齡不能大于100歲")private int age;// Getters and setters
}
- @Size
@Size 用于確保集合、數(shù)組或者字符串字段的大小在指定范圍內(nèi)。
復(fù)制代碼
import javax.validation.constraints.Size;
import java.util.List;public class Example {@Size(min = 2, max = 50, message = "用戶名長度必須在2到50之間")private String username;@Size(min = 1, max = 10, message = "列表大小必須在1到10之間")private List<String> items;@Size(min = 1, max = 100, message = "數(shù)組長度必須在1到100之間")private String[] array;// Getters and setters
}
- @Pattern
@Pattern 使用正則表達(dá)式驗證字符串字段的格式。
import javax.validation.constraints.Pattern;public class Example {@Pattern(regexp = "[a-zA-Z0-9]+", message = "用戶名只能包含字母和數(shù)字")private String username;// Getters and setters
}
- @Valid
@Valid 用于嵌套驗證,對一個對象的屬性進(jìn)行驗證。
復(fù)制代碼
import javax.validation.Valid;public class Outer {@Validprivate Inner inner;// Getters and setters
}public class Inner {@NotBlank(message = "姓名不能為空")private String name;// Getters and setters
}
- 控制器(Controller)中啟用字段校驗
在 Spring Boot 中,可以通過在控制器類或方法上添加 @Validated 注解來啟用驗證,并使用 @Valid 注解對請求對象進(jìn)行驗證。
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid;@RestController
@Validated // 注解表示啟用驗證
public class MyController {@PostMapping("/example")public String example(@RequestBody @Valid MyRequest request) {// 處理請求return "Success";}
}
- 處理參數(shù)異常
在 Spring Boot 中,可以通過使用 @RestControllerAdvice 和 @ExceptionHandler 注解來捕獲驗證錯誤并處理它們。
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;import java.util.HashMap;
import java.util.Map;@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(MethodArgumentNotValidException.class)public Map<String, String> handleValidationExceptions(MethodArgumentNotValidException ex) {BindingResult result = ex.getBindingResult();Map<String, String> errors = new HashMap<>();for (FieldError error : result.getFieldErrors()) {errors.put(error.getField(), error.getDefaultMessage());}return errors;}
}
通過使用這些注解,可以有效地簡化 Java 開發(fā)中的數(shù)據(jù)校驗工作,確保應(yīng)用程序的數(shù)據(jù)完整性和一致性。希望這些示例代碼能幫助你更好地理解它們的用法和作用。