SpringBoot 는 hibernate validator 검 사 를 사용 합 니 다.
본문 소스 코드:https://gitee.com/yintianwen7/taven-springboot-learning/tree/master/springboot-validate
준비 작업
우 리 는
spring-boot-starter-web
가방 만 도입 하면 사용 할 수 있다.1.상용 주해
상용 주해
2.간단 한 실체 검사
public class CardDTO {
@NotBlank
private String cardId;
@Size(min = 10, max = 10)
@NotNull
private String cardNum; //
@Past
@NotNull
private Date createDate;
@Range(max = 3)
private String cardType;
// get set
}
@RestController
public class UserController {
@PostMapping("simple")
public Object simple(@RequestBody @Valid CardDTO cardDTO) {
return cardDTO;
}
}
3.1 내장 실체 검사
public class UserDTO {
@NotBlank
private String userId;
@NotBlank
private String username;
private String password;
@Valid
private List<CardDTO> cardList;
// get set
}
controller 는 같은 방법 으로 UserDTO cardlist 속성 에@Valid 주 해 를 표시 하면 됩 니 다.3.2 리스트잘못된 예제
만약 우리 가 실체 List 를 검사 하고 싶다 면,위의 그림 에서 보 듯 이 이런 표기 법 은 전혀 효과 가 없다.
우 리 는 끼 워 넣 고 검사 할 때 처럼
List<CardDTO>
을 한 층 포장 해 야 한다.
public class ValidList<E> implements List<E> {
@Valid
private List<E> list = new ArrayList<>();
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
//
}
재 작성 실현 방법 은 this.list.xxx()를 완전히 사용 합 니 다.Gitee:spring 은 우리 가 정의 하 는 list 속성 에 데 이 터 를 봉인 하고@Valid 를 속성 으로 표시 하여 hibenate vaidator 가 우리 에 게 검증 할 수 있 도록 합 니 다!
3.3@Validated 그룹 검사 사용 하기
public interface Insert {
}
public interface Update {
}
두 개의 인터페이스 정의
public class GroupCardDTO {
@NotBlank(groups = {Update.class})
private String id;
@NotBlank(groups = {Insert.class})
private String cardNum;
@NotNull(groups = {Insert.class, Update.class})
private Integer cardType;
// get set
}
실체 태그 의 주석 에 group 속성 추가
@PostMapping("insert_card")
public Object insert_card(@RequestBody @Validated(Insert.class) GroupCardDTO card){
return card;
}
@Validated(xxx.class)태그 파 라 메 터 를 사용 하여 그룹 검사 완료!4.사용자 정의 주석 검사
vaidator 가 제공 하 는 주석 이 우리 의 업무 수 요 를 만족 시 키 지 못 할 경우 사용자 정의 방식 으로 검증 할 수 있 습 니 다.
필요:어떤 문자열 을 대문자 나 소문 자로 검사 해 야 합 니 다.
public enum CaseMode {
UPPER,
LOWER
}
매 거 진 클래스 정의
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Target( { ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = CheckCaseValidator.class)
@Documented
public @interface CheckCase {
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
CaseMode value() default CaseMode.LOWER;
}
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class CheckCaseValidator implements ConstraintValidator<CheckCase, String> {
private CaseMode caseMode;
@Override
public void initialize(CheckCase constraintAnnotation) {
this.caseMode = constraintAnnotation.value();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null || "".equals(value.trim())) {
return false;
}
switch (this.caseMode) {
case LOWER:
return value.equals(value.toLowerCase());
case UPPER:
return value.equals(value.toUpperCase());
default:
return false;
}
}
}
사용자 정의 설명 은@Validated group 그룹 을 지원 합 니 다.
이 절 소스 코드:https://gitee.com/yintianwen7/taven-springboot-learning/tree/master/springboot-validate
로 컬 다운로드 주소:springboot-validate_jb51.rar
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.