@validation

dongbin_Shin·2021년 8월 10일
0

spring boot

목록 보기
1/2
post-thumbnail

javax.validation

javax.validation 라이브러리는 위와 같은 어노테이션들을 지원해준다.
검증하고자 하는 객체의 필드에 위 어노테이션을 추가해주면

이 객체가 파라미터로 들어올 때 @Valid를 추가해줌으로써 검증할 수 있다.
또 이 파라미터 바로 뒤에, Errors errors 파라미터를 추가해주면 검증 시 발견된 에러를 가지고 올 수 있다.

  • SignUpForm 객체가 유효하지 않다면 bindingResult.hasErrors() 메소드에서 true가 반환된다.
  • SignUpForm이 유효하지 않다면 ResponseentityBAD_REQUESTbindingResult.getAllErrors()값을 넣고 생성하여 반환된다.

Spring boot 2.3 이상부터!

기존에는 org.springframework.boot:spring-boot-starter-web에서 Validation을 자동으로 추가해줬지만 Spring boot 2.3부터 지원을 해주지 않는다.
그렇기 때문에 2.3버전 이상의 Spring boot를 사용할 때는 직접 javax.validationorg.hibernate.validator를 추가해주어야 한다.

Spring boot 2.3 Realease Note

<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-apihibernate-validator를 사용하면 @Pattern과 같은 어노테이션 constraints가 제대로 동작하지 않는다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

Spring-boot-starter-validation

"본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다."

profile
멋있는 백엔드 개발자

0개의 댓글