• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

javax.validation에서 제공하는 @NotEmpty와 같은 어노테이션이 동작하지 않는 이유가 궁금합니다.

20.05.26 23:02 작성 조회수 653

11

안녕하세요.

이전에  "Bad Request 처리" 강의에 대한 질문 중

스프링부트 버전 2.3.0에서  starter web에 디펜던시로 spring-boot-starter-validation가 제외된 이슈와 관련하여

직접 "javax.validation"을  의존성 설정을 해줌으로써 @NotEmpty와 같은 어노테이션을 사용할 수 있었습니다.

하지만 추가적인 문제가 발생했는데요.

EventDto class의 특정 필드에 @NotEmpty, @NotNull과 같은 어노테이션을 설정했음에도 불구하고 유효성 검사가 정상적으로 이루어지지 않고 있습니다.(동작하지 않는 것 같습니다.)

"javax.validation"외 추가적인  의존성 설정이 필요한 것인지 궁금합니다.

[참고자료]

https://stackoverflow.com/questions/8756768/annotations-from-javax-validation-constraints-not-working

위 참고자료를 보면,

저 같이 "javax.validation"이 아닌 "spring-boot-starter-validation"에 대해서 의존성 설정을 추가하라는 제안이 있었는데요.

실제로 유효성 검증을 처리하여 Errors(또는 BindingResult)에 결과를 넘겨주는 라이브러리가 "spring-boot-starter-validation"에는 추가로 존재하는 것일까요?

답변 2

·

답변을 작성해보세요.

8

스프링 부트 2.3부터 validation이 별도의 모듈로 분리가 되서 그런데요. spring-boot-starter-validation만 추가하시면 JSR-303애노테이션을 쓸 수 있고, 그와 관련 자동 설정은 여전히 스프링 부트 코어에서 제공하기 때문에 validation 처리가 되는게 맞습니다.

@Valid를 사용하지 않으셨거나, 에러처리를 안한건 아닌지 다시 살펴보시기 바랍니다.

0

orez님의 프로필

orez

2021.05.10

저도 동일한 증상이었는데 의존성만 추가하니 정상 동작합니다 :-) 강의 잘 듣고 있습니다 :-)