Spring

[SpringBoot] javax.validation이 import가 안되는 경우

coding-knowjam(코딩노잼) 2021. 9. 4.
728x90

안녕하세요 Coding-knowjam입니다..

오늘은 혼자서 개인 공부하다가 갑자기 생긴 이슈에 대해서 짤막하게 적어보려고 합니다.

 

1. javax.validation가 왜 안보이지???...

그냥 단순하게 DTO성격으로 쓸려고 멤버 폼 클래스를 만들었는데 @NotEmpty 어노테이션에서 validation이 자동완성에서 안 나오는 현상이 발생하면서 import도 없음!!

그래서 Gradle을 확인해봤더니 없더라고요??

예전에는 따로 의존성 추가 안 해줘도 바로 쓸 수 있던 거 같은데 해서 히스토리를 좀 조사해봤습니다.

 

SpringBoot 공식 사이트에서 버전별 릴리즈 노트를 볼 수 있는 문서인데 2.3에 관련된 문서입니다.
(https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes)

해당 문서를 보면 바로 상단에 이렇게 적혀있습니다.

Validation Starter no longer included in web starters
As of #19550, Web and WebFlux starters do not depend on the validation starter by default anymore.
If your application is using validation features, for example you find that javax.validation.*
imports are not being resolved, you’ll need to add the starter yourself.

-> 해석
Validation Starter는 더 이상 Web Starter에 포함되지 않습니다.
#19550부터 Web 및 WebFlux 스타터는 더 이상 기본적으로 유효성 검사 스타터에 의존하지 않습니다.
애플리케이션에서 유효성 검사 기능을 사용하는 경우 스타터를 직접 추가해야 합니다.
(예: javax.validation.* 가져오기가 확인되지 않는 경우)

SpringBoot 2.3 버전부터는 web startes에 더 이상 javax.validation.* 는 기본으로 포함하지 않는다고 합니다.

고로 필요한 경우는 직접 추가하라고 합니다. (두둥..)

그래서 만약에 쓰고 계신 SpringBoot의 버전이 2.3 이상이라면 아래와 같이 Gradle에 추가해주시면 됩니다.

저는 현재 시점 가장 최신 버전인 2.5.4를 추가해줬습니다.

추가해주신 후 다시 빌드하시면 정상적으로 import가 가능하신 걸 확인하실 수 있을 겁니다!!


728x90

댓글