애너테이션
@Email
- 클라이언트의 요청 데이터에 유효한 이메일 주소가 포함되어 있지 않을 경우 유효성 검증의 실패로 클라이언트의 요청이 거부(reject)됨.
- 유효한 이메일 주소인지를 검증한다.
- 유효성 검증에 실패하면 내장된 디폴트 에러 메시지가 콘솔에 출력됨.
import를 javax.validation.constraints.Email
로 해야한다.
org.hibernate.validator.constraints.Email
의 import는 Dprecated되었다.
@Valid
- 메서드의 매개변수 앞에
@Valid
애너테이션이 붙으면 객체에 유효성 검증을 적용해준다.
@RequestBody
- JSON 형식의 Request Body를 DTO클래스의 객체로 변환시켜주는 역할을 한다.
- 이 말의 의미는 클라이언트 쪽에서 전송하는 Request Body가 JSON형식이어야 한다는 의미이다.
@ResponseBody
- JSON 형식의 Response Body를 클라이언트에게 전달하기 위해 DTO 클래스의 객체를 Response Body로 변환하는 역할을 함.
- Handler Method의 반환타입이
ResponseEntity
라면, 생략가능하다.
유효성 검증시 필요한 애너테이션
@NotBlank
- null 값이나 공백(””), 스페이스(” “) 같은 값들을 모두 허용하지 않음.
- 유효성 검증에 실패하면
@Email
과 같이 해당 애너테이션의 message 애트리뷰트에 지정한 문자열이 에러 메시지로 콘솔에 출력 됩니다.
@Pattern
regexp
로 지정해놓은 정규식에 유효한지 검증해준다.
- 다른 검증 애너테이션과 마찬가지로 유효성 검증 실패시 디폴트 에러 메세지가 출력된다.
@Min(숫자)
- 요청파라미터(RequestParameter,
@RequestParam
) 과 같이 유효성 검증에 쓰이는 애너테이션
- 단순히 이 애너테이션만 가지고는 올바르게 사용할 수 없고,
@Validated
애너테이션이 있어야 사용 가능하다.
@Validated
- 유효성 검증과 관련된 애너테이션
- 소스 코드를 보면, 클래스, 메서드, 파라미터 안에 사용가능하다.
유효성 검증 의존라이브러리 추가
build.gradle 파일의 dependencies
탭에
implementation 'org.springframework.boot:spring-boot-starter-validation'
위 코드를 추가한다.
여기에 포함된 애너테이션을 비롯해서 다른 유용한 유효성 애너테이션 더 보기
출처 :https://bamdule.tistory.com/35
커밋 ㅇ