'내가' 자주 사용하는 어노테이션
이제서야 쓰기 시작했다. 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에서 잡아서 처리해주면 된다.