[Spring]validation라이브러리, 커스텀 validation annotation만들기
💡 핵심 요약 (TL;DR)
validation라이브러리, 커스텀 validation annotation만들기의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 2. 구현에 따라 Service Logic과 분리가 필요할 수 있음을 적용할 수 있다.
일반적으로 validation을 진행할 때 아래와 같이 서비스단에서 null값을 체크해준다.
파라미터가 3개이상인 경우나 여러 상황에서 한계점이 존재한다.
1 | public void example(String 파람1, String 파람2, int 파람3){ |
예상할 수 있는 한계점
- 검증해야 할 파라미터가 많은 경우 코드가 길어짐
- 구현에 따라 Service Logic과 분리가 필요할 수 있음
- 흩어져 있는 경우 어디에서 검증하는 지 알기 어려움
- 재사용의 한계 존재
이럴때는 spring-boot-starter-validation 라이브러리를 사용할 수 있다.![]()
끄적끄적님의 어노테이션 포스팅에 자세한 설명과 예시가 나와있다.
BindingResult객체
해당 객체를 통해 예외처리 가능하다.
validation 커스텀 어노테이션 만들기
YearMonth형태가 yyyyMM형태인 어노테이션을 만들어보자.
1. Annotation 클래스 생성하기 new Annotation을 생성하고 아래처럼 작성하면 된다.
1 |
|
2. Validator 로직 작성하기 위에서 만든 어노테이션을 활용하여 유효성체크를 하는 클래스를 만들어야한다. new Java Class를 생성하고 아래처럼 작성하면 된다.
1 | public class YearMonthValidator implements ConstraintValidator<YearMonth, String>{ |
3. 사용하기
그리고 사용법은 VO에서 패턴을 걸어주면된다.
1 | // VO 일부 |
[Spring]validation라이브러리, 커스텀 validation annotation만들기
https://sowon-dev.github.io/2021/08/01/210802Spring-Validation/