오늘 작성할 내용은 ConstraintValidator를 활용하여 custom validation을 해보는 것이다. 스프링에서는 JSR 303 기반 어노테이션 기반으로 일관성 있는 Validation을 진행할 수 있다. 하지만 자신이 원하는 방식이 없으면 직접 만들어서 validation을 진행해야 한다. 따라서 이번 글은 ConstraintValidator를 활용하여 custom validation을 만들어 보는 것입니다.
위에 JSON 데이터에 있는 birth_date
는 기본 어노테이션으로 Validation을 진행할 수 없다. 따라서 custom validation을 직접 구현해야 한다. validation을 구현할 수 있는 방법은 많지만 여기서는 ConstraintValidator을 구현하여 사용해 보겠다.
validation을 할 annotation을 만들어 줍니다. 검증은 Test_annotationValidator
클래스를 사용합니다.
(1). ConstrainVaidator<Test_annotation, String>을 상속받습니다.
위에 만든 annotation인 Test_annotation
를 사용하고 User data에 있는 birth_date
를 @RequestBody로 받습니다.
(2). isValid
메소드에서 birth_date
를 pattern(yyMMdd)로 받을 수 있으면 true를 리턴해주고 아니면 false를 리턴해 줍니다
@Valid
로 검증을 해줍니다.