[SpringBoot] @Valid로 유효성 검사하기
Spring에서 파라미터를 주고 받으면 통신을 할때 유효성이 필요할떄
해당 파라미터에 대해서 하나씩 검증체크를 해주었다.
대표적으로 NotNull 체크에 대해서 알아보도록 하자.
예시
@PostMapping("/message")
@ResponseBody
public String pushMessage(@RequestBody Message msg) throws Exception {
if (msg.getMemo() != null || msg.getMemo().equals("")) {
throw new Exception("메모를 입력해주세요.");
}
return "성공";
}
그러나 @Valid 어노테이션으로 해당 파라미터들을 간편하고 더 다양하게 유효성 처리해줄수있다.
예시
@PostMapping("/message")
@ResponseBody
public String pushMessage(@RequestBody @Valid Message msg) throws Exception {
return "성공";
}
import javax.validation.constraints.NotNull;
public class Message {
@NotNull(message = "메모를 입력해주세요.")
private String Memo;
public String getMemo() {
return Memo;
}
public void setMemo(String memo) {
Memo = memo;
}
}
많이 쓰이는 몇가지 어노테이션을 더 알아보도록 하자
@NotNull(message = "Name cannot be null")
private String name;
@AssertTrue
private boolean working;
@Size(min = 10, max = 200, message = "About Me must be between 10 and 200 characters")
private String aboutMe;
@Min(value = 18, message = "Age should not be less than 18")
@Max(value = 150, message = "Age should not be greater than 150")
private int age;
@Email(message = "Email should be valid")
private String email;
위와 같은 코드로 좀 더 객체지향적 코드에 가까워진거 같다.
Map으로 데이터를 주고받는경우도 많겠지만 VO객체로 데이터를 주고받는 경우
해당 @Valid 어노테이션을 통해서 좀 더 편리하게 구현하기를 바란다.
다른 글 읽어보기 ⬇️
moment