본문 바로가기
개발

Spring 자주 사용하는 유효성 검사 어노테이션 (@Valid, @NotNull, @NotEmpty, @NotBlank...)

by 상5c 2019. 9. 9.

'내가' 자주 사용하는 어노테이션

 

이제서야 쓰기 시작했다. DTO로 request를 받을 때 귀찮게 검사하지 말고 쓰자!

(docs를 잘 읽자)

 

 

public class User {

    @Min(0)
    private int id;
    @Max(20)
    private int age;
    @NotBlank
    private String name;
    @NotNull
    private int level;
    
    
    ....
    ... getter ...
    
    ... setter ...
}

 

@Min, @Max

보이는 바와 같이 최소값, 최대값을 설정

 

@NotNull

변수가 Null이 될 수 없다.

 

@NotEmpty

빈 값("")이 될 수 없다.

 

@NotBlank

trim했을때 Empty이면 안된다.

공백(" ")만 있는 문자열을 받지 못한다.

 

@NotNull, @NotEmpty, @NotBlank

같이 쓸 필요가 없다.

NotEmpty는 널이 아니고 빈 값이 아님을 의미하고 블랭크도 마찬가지로 이전의 두 개의 어노테이션을 포함한다.

문자열이 아닌 경우 @NotNull을 써야한다. (당연)

 

 

 

 

@Valid

유효성 검사 트리거.

아래와 같이 사용할 수 있다.

@PostMapping("/")
public void Test(@Valid @RequestBody User user) {
	.....
}

전달받은 데이터를 DTO로 만들면서 유효성을 검사한다.

여기서 나온 에러를 @ControllerAdvice에서 잡아서 처리해주면 된다.