반응형
- 이유 : spring boot 2.3 version 이상부터는 spring-boot-starter-web 의존성 내부에 있던 validation이 분리됬다.. 때문에 사용하는 spring boot version이 2.3 이상이라면 validation 의존성을 따로 추가해야 한다.
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
해당 테스트를 위해 @Valid 가 포함되어 있는 데이터에 고의적으로 에러를 발생시켜 보았다.
@Size 가 최소 2인 변수 name에 길이 1의 데이터를 입력.
400에러로 정상적인 Valid 어노테이션이 동작했음을 알 수 있었다.
- 참고)
해당 문제를 검색을 하다가 Hibernate Validator도 javax.validation 패키지를 지원해준다는 것을 발견했다.
그렇다면 spring-boot-starter-validation 말고 hibernate-validator-cdi 를 의존성 주입 해주어도 사용이 가능할까?
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>6.0.7.Final</version>
</dependency>
포스트맨으로 전송한 결과 동일하게 400 에러가 발생했다.
( hibernate-validator 로 의존성주입 했을땐 201로 정상 동작했었다... CDI (Contexts and Dependency Injection) 아키텍처를 사용해야만 의존성 주입이 된다는것을 확인할 수 있다.)
※ 만약 Maven을 수정하고 어노테이션이 정상적으로 동작하지 않는다면?
해당 프로젝트(또는 (tomcat)Server) 를 Clean 해줘야한다.
https://matseventwelve.tistory.com/61
[Eclipse] SpringBoot Project Clean
필요성 : Spring Boot 프로젝트를 진행하던 도중 새 Maven을 추가해주었을 때 해당 Maven이 정상적으로 코드에 반영되지 않았을 경우 프로젝트 Clean이 필요. ( dependency : spring-boot-starter-validation 을..
matseventwelve.tistory.com
반응형
'Programming > Spring' 카테고리의 다른 글
[Spring] jackson-dataformat-xml (@JsonIgnore, @JsonIgnoreProperties) - Response 데이터 제어 (0) | 2022.02.17 |
---|---|
[Spring] jackson-dataformat-xml (DataType = XML 리턴 ) (0) | 2022.02.17 |
[Spring] 이클립스에서 Environment값 설정 (0) | 2021.12.02 |
[Spring] SpringBoot 프로퍼티(properties) 우선순위 (0) | 2021.12.02 |
[Spring] @Bean, @Configuration, @Component 어노테이션 차이 (0) | 2021.12.02 |