@Valid

이재호·2023년 1월 17일

@Valid

이름에서 볼 수 있듯이 뭔가 검증하는 거다.

implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation'

의존성 추가하고

@Getter
@RequiredArgsConstructor
public class User {

	@Email
	@NotBlank
	@NotNull
	private String Email;

}

이런 객체가 있고 이런 객체를 다른 곳에서 @Valid붙여서 사용해주면 객체가 메서드를 통과하기 전에 validation을 수행한다.

  public ResponseEntity signup(@Valid @RequestBody User user) throws UnknownHostException, MessagingException {
        userService.signup(User);

        return new ResponseEntity(HttpStatus.OK);
    }

이 메서드를 통과하기 전에 null값이 아닌지, 빈값이 아닌지, 이메일 형식인지를 체크하고 들어오게 되는 것이다.

만약
검증에 오류가 있다면
MethodArgumentNotValidException를 반환한다.
기본적으로 컨트롤러에서 @RequestBody와 함께 사용된다.

참고로
@NotNull: 해당 값이 null이 아닌지 검증함
@NotEmpty: 해당 값이 null이 아니고, 빈 스트링("") 아닌지 검증함(" "은 허용됨)
@NotBlank: 해당 값이 null이 아니고, 공백(""과 " " 모두 포함)이 아닌지 검증함
@AssertTrue: 해당 값이 true인지 검증함
@Size: 해당 값이 주어진 값 사이에 해당하는지 검증함(String, Collection, Map, Array에도 적용 가능)
@Min: 해당 값이 주어진 값보다 작지 않은지 검증함
@Max: 해당 값이 주어진 값보다 크지 않은지 검증함
@Pattern: 해당 값이 주어진 패턴과 일치하는지 검증함

profile
에라 모르겠다~ i love it~

0개의 댓글