Validation은 프로그래밍에서 중요한부분이다.
공식 홈페이지 ::: https://hibernate.org/validator/
Java에서는 null 값 접근에 대한 exception이 발생함으로, 이러한 부분을 방지 하기 위해서 미리 검증을 해야한다.
- 검증해야 필요성과 코드의 길이가 정비례로 많아진다.
- 비즈니스, 서비스 로직과는 다른 목적이므로 분리가 되야한다.
- 검증이 필요한 부분이 흩어져 있어 재사용의 한계가 있다.
- 구현에 따라 달라 질 수 있지만, 검증 Logic이 변경 되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생할 수 있다.
자주 사용하는 Spring 검증 아노테이션
2.프로젝트에 추가하기
URL ::: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation/2.5.2
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.5.2</version>
</dependency>
Gradle
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.2'
- 중첩된 객체에서는 @Valid가 먹히지 않는다. User 클래스 내부에 또다른 valid체크하는 클래스가 있다면 거기에서도 @Valid 지정해주어야함.
- AssertTrue / False와 같은 method지정을 통해서 Custom Logic 적용 가능
- ConstraintValidator를 적용하여 재사용이 가능한 Custom Logic 적용가능
'Spring' 카테고리의 다른 글
How to handle Spring WebClient Exception. 스프링 에러 핸들링. Pt. 1 (0) | 2021.09.16 |
---|---|
Spring & SpringBoot 짧고 굵게 짚고가기 (0) | 2021.09.12 |
@RunWith(SpringRunner.class) 와 @ExtendWith(SpringExtension.class) 의 주의할 점 & 설명 (0) | 2021.09.02 |