inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 등록

javax.validation

해결된 질문

2775

admin

작성한 질문수 1

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
여기에 질문 내용을 남겨주세요.

전체 코드: https://github.com/StrawberryRabbit0623/Spring_study/tree/section7_halt

스프링 3.2.2 버전으로 강의를 따라하고 있습니다. 스프링 버전 2.x 에서는 아래 starter-validation이 기본으로 지원된다고 알고있습니다.

 

그런데 문제는 아래 implementation을 작성해도, javax.validation이 인식되지 않습니다.

 

implementation 'org.springframework.boot:spring-boot-starter-validation'

 

아래 jakarta implimentation 혹은 javax 는 javax.validation을 가능케 해주지만, 정작 @Valid가 전혀 작동하지 않습니다. 정확히는, 회원가입 시 이름란을 비우고 가입해도 전혀 문제 없이 홈페이지로 복귀합니다. 혹시나 하여 @NotBlank로 바꾸어보았지만 여전합니다.

 

implementation 'jakarta.validation:jakarta.validation-api:2.0.2'

implementation 'javax.validation:validation-api:2.0.1.Final'

종속성, 코드, 아니면 그 외의 어떤것이 문제인지 모르겠어 질문남깁니다..

 

java spring 웹앱 spring-boot jpa

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

문제점에 대해 깊이 들어가 보려 합니다. 질문자님께서는 스프링 프레임워크 3.2.2 버전을 사용하면서 @Valid 어노테이션과 관련된 starter-validation 의존성 문제를 경험하고 계시군요. javax.validation 패키지를 implementation으로 추가하였음에도 불구하고 @Valid 어노테이션이 작동하지 않는 문제가 발생했다고 하셨습니다.

이런 문제는 종종 스프링 부트 버전 업데이트에 따른 호환성 문제일 수 있으며, javax 대신 jakarta 네임스페이스로 전환되는 부분으로 인해 생길 수 있습니다. 스프링 부트 3.x 버전에서는 jakarta.* 패키지가 사용되고 있기 때문입니다.

따라서 질문자님께서 겪고 계신 문제와 관련하여 몇 가지 가능한 해결방안을 아래와 같이 추천드립니다.

  1. @NotEmpty, starter-validation 문제 - 이 질문에서 한 사용자는 @NotEmptystarter-validation에 관련된 인식 문제를 겪었습니다. 답변에 따르면 올바른 의존성 추가와 IDE의 프로젝트 설정 내에서 의존성을 재로드하여 해결을 시도하였습니다.

  2. 유효성 검사 질문 - 여기서는 @Valid, @NotEmpty와 같은 어노테이션을 사용한 유효성 검사에 대한 궁금증을 해결하기 위한 설명을 찾을 수 있었습니다. 클라이언트 측과 서버 측 유효성 검사의 차이점을 설명하고 있으며, 이해에 도움이 되실 것 같습니다.

  3. Validation (JSR-303 validation with Hibernate validator) 모듈 추가 - 이 경우 사용자가 스프링 부트 스타터에서 어떻게 유효성 검사 모듈을 추가하는지에 대해 질문했고, 답변에서는 build.gradle에 의존성을 추가하는 단계를 제시하고 있습니다.

위 링크들 중 하나라도 문제 해결에 도움이 될 수 있기를 바라면서, 질문자님의 문제가 해결되기를 기원합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

3

admin

AI 인턴 덕분에 Gradle 설정을 자세히 읽어보고, 해결했습니다.

 

아래 구문을

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;

 

아래 구문으로 변경하고 해결되었습니다.

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;

 

implementation은 아래로 정의했습니다.

implementation 'org.springframework.boot:spring-boot-starter-validation'

sdk 설정 오류

0

53

2

오탈자 - @Transactional

0

56

1

src/test/resources 테스트 경로 문제

0

50

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

64

1

MemberRepositoryTest 실행오류

0

81

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

184

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

142

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

51

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

71

1

기본 생성자

0

60

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

103

1

멤버서비스테스트 부분에서 막힙니다.

0

165

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

116

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

120

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

114

1

24분 27초 연관관계 편의 메서드 위치

0

113

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

109

2

빌드 툴, Gradle

0

59

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

77

2

Repository에서 EntityManager 주입 방식 차이

0

90

1

롬복과 사용자 정의 setter 메서드

0

73

1

주문 목록 조회 fetch join 질문드립니다

0

82

1

dirty checking 질문드립니다.

0

83

1

동시성 관련 질문입니다

0

75

1