반응형
javax.validation
javax.validation 라이브러리는 위와 같은 어노테이션들을 지원해준다.
검증하고자 하는 객체의 필드에 위 어노테이션을 추가해주면
이 객체가 파라미터로 들어올 때 @Valid를 추가해줌으로써 검증할 수 있다.
또 이 파라미터 바로 뒤에, Errors errors 파라미터를 추가해주면 검증 시 발견된 에러를 가지고 올 수 있다.
- SignUpForm 객체가 유효하지 않다면 bindingResult.hasErrors() 메소드에서 true가 반환된다.
- SignUpForm이 유효하지 않다면 Responseentity에 BAD_REQUEST와 bindingResult.getAllErrors()값을 넣고 생성하여 반환된다.
Spring boot 2.3 이상부터!
기존에는 org.springframework.boot:spring-boot-starter-web에서 Validation을 자동으로 추가해줬지만 Spring boot 2.3부터 지원을 해주지 않는다.
그렇기 때문에 2.3버전 이상의 Spring boot를 사용할 때는 직접 javax.validation와 org.hibernate.validator를 추가해주어야 한다.
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.10.Final</version>
</dependency>
프로젝트 생성 시 Validation을 추가해주거나,
따로 gradle 또는 maven에 직접 추가해주어야 한다.
Spring boot가 관리하는 Validation을 사용하기 위해서는 spring-boot-starter-validation을 의존성으로 추가해주어야 한다.
위의 validation-api나 hibernate-validator를 사용하면 @Pattern과 같은 어노테이션 constraints가 제대로 동작하지 않는다.<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
"본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다."
반응형
'Spring' 카테고리의 다른 글
ModelMapper (0) | 2023.02.06 |
---|---|
NPM으로 프론트엔드 라이브러리 관리 (0) | 2023.02.06 |
@Configuration (0) | 2023.02.06 |
@Bean, @Component 차이 (0) | 2023.02.06 |
@Controller, @RestController 차이 (0) | 2023.02.06 |