본문 바로가기
스터디/Spring

[Spring] Springboot 버전에 따른 validation 패키지 (org.hibernate.validator.constraints does not exist)

by zoodi 2024. 7. 7.
728x90

목차

     

     

     

    1. javax와 jakarta package 의 Validation

    이슈 내용

    Springboot 2.x 버전에서 Springboot 3.x 버전으로 업데이트한 뒤 Validation 관련 어노테이션을 적용할 때 에러가 발생하였습니다.

    • 에러 메시지
    package org.hibernate.validator.constraints does not exist
    cannot find symbol symbol  : class NotBlank

    javax 패키지의 Validation을 사용하였고 build.gradle에 필요한 모듈을 모두 추가했음에도 에러가 발생하였습니다.

    • build.gradle
    ...
    implementation("org.springframework.boot:spring-boot-starter-validation")
    implementation("javax.validation:validation-api:2.0.1.Final")
    ...

     

    2. 원인

    • Springboot 3.x 버전부터는 javax 가 아닌 jakarta 패키지의 Validation을 사용한다고 합니다.
    • 따라서 Validation 어노테이션을 사용하기위해서는 javax.validation 패키지가 아닌 jakarta.validation 패키지를 사용해야됩니다.

    3. 해결방법

     

    Springboot 2.x 에서의 validation package 예시

    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.NotEmpty;
    
    @Service
    public class TestService {
    
      @Max(5)
      @Min(0)
      private int fileSize;
    ...
    }

     

    Springboot 3.x 에서의 validation package 예시

    import jakarta.validation.constraints.Max;
    import jakarta.validation.constraints.Min;
    import jakarta.validation.constraints.NotBlank
    
    @Service
    public class TestService {
    
      @Max(5)
      @Min(0)
      private int fileSize;
    ...
    }

    <참고자료>

    728x90

    댓글