의존성 추가
// Gradle
implementation 'org.springframework.boot:spring-boot-starter-validation'
// Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
자주 사용하는 어노테이션은 이정도가 있음..
- @NotNull : 해당 값에 Null을 허용하지 않음
- @NotBlank : Null을 허용하지 않으며 문자가 한 개 이상 포함되어야 함 (공백 제외)
- @NotEmpty : Null을 허용하지 않으며 공백 문자열을 허용하지 않음
- @AssertTrue : true인지 확인
- @Min : 값이 Min보다 작은지 확인
- @Max : 값이 Max보다 큰지 확인
- @Size : 값이 min과 max사이에 해당하는지 확인 (CharSequence, Collection, Map, Array에 해당)
* NotNull / NotEmpty / NotBlank 차이
사용해보기!
유효성 검사를 할 필드에 어노테이션을 붙여준다.
name은 Null일 수 없고, 길이가 64를 초과할 수 없다!
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class Person {
@NotNull
@Size(max = 64)
private String name;
/* 생략 */
}
그리고 컨트롤러에서는 유효성 검사를 할 곳에 @Valid 어노테이션을 붙여준다. 주로 @RequestBody 앞에 붙게 된다.
@PostMapping(value = "/", produces = "application/json")
public ResponseEntity<?> sendSMS(@Valid @RequestBody Person person) {
/* 생략 */
}
+) 이어 보면 좋은 글
기본적으로 제공하는 어노테이션 외에 직접 어노테이션을 만들어 유효성 검사할 수 있다!
유효성 검사를 통과하지 못했을 때 발생한 exception을 @ControllerAdvice를 이용해 처리하는 법 (Error Response를 작성하는 법)
+) 참고
'STUDY > Spring' 카테고리의 다른 글
Spring Boot | @ControllerAdvice로 Exception 처리하기 (0) | 2021.03.19 |
---|---|
Spring Boot | 유효성 검사 직접 만들기! (Custom Constraint) (0) | 2021.03.17 |
Spring Boot | Spring Security 한 유저에게 여러 Authority(ROLE) 부여하기 (UserDetails) (0) | 2021.03.15 |
Spring Boot | Spring Security OAuth2 (7) 토큰과 함께 다른 정보 응답 (0) | 2021.03.12 |
Spring Boot | Spring Security OAuth2 (6) JWT KeyPair (0) | 2021.03.11 |