[Spring] Custom Validation (ConstraintValidator를 사용해보기)

fooooif·2021년 5월 12일
0
post-thumbnail

✍포스팅 할 내용

오늘 작성할 내용은 ConstraintValidator를 활용하여 custom validation을 해보는 것이다. 스프링에서는 JSR 303 기반 어노테이션 기반으로 일관성 있는 Validation을 진행할 수 있다. 하지만 자신이 원하는 방식이 없으면 직접 만들어서 validation을 진행해야 한다. 따라서 이번 글은 ConstraintValidator를 활용하여 custom validation을 만들어 보는 것입니다.

👉 코드

User 데이터

위에 JSON 데이터에 있는 birth_date는 기본 어노테이션으로 Validation을 진행할 수 없다. 따라서 custom validation을 직접 구현해야 한다. validation을 구현할 수 있는 방법은 많지만 여기서는 ConstraintValidator을 구현하여 사용해 보겠다.

Annotation


validation을 할 annotation을 만들어 줍니다. 검증은 Test_annotationValidator클래스를 사용합니다.

검증 logic이 있는 Validator


(1). ConstrainVaidator<Test_annotation, String>을 상속받습니다.
위에 만든 annotation인 Test_annotation를 사용하고 User data에 있는 birth_date를 @RequestBody로 받습니다.
(2). isValid 메소드에서 birth_date를 pattern(yyMMdd)로 받을 수 있으면 true를 리턴해주고 아니면 false를 리턴해 줍니다

User

Controller


@Valid로 검증을 해줍니다.

profile
열심히 하자

0개의 댓글