본문 바로가기
스터디/Spring

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

by zoodi 2024. 7. 7.
728x90

목차

  1. 1. javax와 jakarta package 의 Validation
  2. 이슈 내용
  3. 2. 원인
  4. 3. 해결방법

 

 

 

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

댓글