강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của ghkddlsdyd998401
ghkddlsdyd998401

câu hỏi đã được viết

[Phiên bản sửa đổi 2023-11-27] Phát triển RESTful Web Services bằng Spring Boot 3.x

Sử dụng API Validation để xác thực

@Size는 되는데 @Past는 안 됩니다.

Đã giải quyết

Viết

·

51

·

Đã chỉnh sửa

0

제목 그대로 validation에서 size부분은 포스트맨에서 400처리가 잘 되는데 Past 부분은 년도를 1,2 년 뒤로 설정하고 send해봐도 생성이 됩니다.

image.png

 

 

image.png

 

rest-apispring-boot

Câu trả lời 1

0

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

현재 @Past 어노테이션이 작동하지 않는 문제를 겪고 계시는군요. 이는 종종 프로젝트 설정이나 라이브러리 충돌로 인해 발생할 수 있습니다. 이런 경우 몇 가지 점검해볼 사항을 안내드리겠습니다.

  1. Validation 라이브러리 확인: 이미 spring-boot-starter-validation을 사용하고 계시므로, Validation API는 포함된 상태입니다. 다만, 프로젝트의 리빌드가 필요할 수 있습니다. 이 경우, 프로젝트의 Maven을 Reimport하거나, mvn clean install을 통해 종속성을 새로 다운로드 받아 적용해보세요.

  2. Java Bean Validation Provider: @Past와 같은 ConstraintValidator가 제대로 작동하려면, 실행시에 적절한 Validation Provider가 필요합니다. 기본적으로 Hibernate Validator가 사용되므로, hibernate-validator 라이브러리를 추가해보는 것도 좋습니다. 해당 설정은 spring-boot-starter-validation에 포함되어야 하지만, 누락된 경우 직접 추가할 수 있습니다.

    <dependency>
       <groupId>org.hibernate.validator</groupId>
       <artifactId>hibernate-validator</artifactId>
       <version>6.2.0.Final</version> <!-- 버전은 예시, 프로젝트에 맞게 조정 -->
       <scope>compile</scope>
    </dependency>
    
  3. 유효성 검사 테스트: 테스트 시에는 반드시 과거 날짜로 지정하십시오. 예를 들어, 2022년 또는 그 이전 날짜로 joinDate를 테스트하면 좋습니다.

이 외에도, spring-boot 버전과 validation 라이브러리가 충돌할 가능성도 있으니, 버전 정보가 최신인지 확인해 주십시오.

관련하여 많은 질문과 답변이 있으니 유사 질문에서 추가적인 정보를 얻으실 수 있습니다:
- @Size와 @Past import가 안됩니다.
- 메이븐에서 javax.validation 2.0.1.Final 버전을 추가했는데도 validation 동작하지 않습니다.
- Spring boot 2.6.5 버전 validation적용이 안됩니다.

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

ghkddlsdyd99님의 프로필 이미지
ghkddlsdyd99
Người đặt câu hỏi

2026으로 수정하고 send해도 2025 현재 날짜, 시간으로 들어갑니다.

Hình ảnh hồ sơ của ghkddlsdyd998401
ghkddlsdyd998401

câu hỏi đã được viết

Đặt câu hỏi