자바/MSA

유효성 체크

UroJem 2023. 12. 6. 19:15

 

build.gradle에 validation 의존성 추가

 

id 값이 없을 경우 유효성검사에 걸려 등록이 되지 않도록 @NotBlank 어노테이션 설정을 한다.

 

Controller 등록 메서드에 @Valid 어노테이션을 추가해주면 요청으로 넘어온 입력값에 대한 유효성검사를 실시하게 된다.

id 입력값을 뺀 후 요청보냈더니 400 Bad Request 에러가나며 등록하지 못하였다.

 

 

@Valid 어노테이션은 JSR-303 표준스펙으로 빈 유효성 검사기(Bean Validator)를 이용해 객체의 제약 조건을 검증하는 어노테이션이다.

Spring에서 어댑터 객체인 LocalValidatorFactoryBean이 검증처리를 진행하는데 dependency에 'spring-boot-starter-validation' 의존성을 추가하면 LocalValidatorFactoryBean이 어플리케이션 실행시 빈으로 등록된다.

 

클라이언트의 요청은 단일인입점인 디스패처 서블릿을 통해 컨트롤러로 전달되는데 @Valid 어노테이션이 있을 경우 ArgumentResolver에 의해 유효성 검사가 진행된다.

 

 유효성 검증에 오류가 있다면 MethodArgumentNotValidException 예외가 발생되고 디스패처 서블릿의 기본 예외 리졸버인 DefaultHandlerExceptionResolver에 의해 400 Bad Request 에러가 발생한다.

 

@Valid 어노테이션은 기본적으로 컨트롤러에서만 동작하며 다른 계층에서 파라미터 검증을 위해 @Validated 어노테이션과 결합하여 사용하여야 한다.

 

https://mangkyu.tistory.com/174

 

[Spring] @Valid와 @Validated를 이용한 유효성 검증의 동작 원리 및 사용법 예시 - (1/2)

Spring으로 개발을 하다 보면 DTO 또는 객체를 검증해야 하는 경우가 있습니다. 이를 별도의 검증 클래스로 만들어 사용할 수 있지만 간단한 검증의 경우에는 JSR 표준을 이용해 간결하게 처리할 수

mangkyu.tistory.com

 

 

 

https://www.inflearn.com/course/java-msa-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%A4%EC%8A%B5/dashboard

 

Java 마이크로서비스(MSA) 프로젝트 실습 - 인프런 | 강의

Java SpringCloud와 여러 오픈소스를 연동하여 마이크로서비스를 구축하는 세미 프로젝트를 경험해보실 수 있습니다. 마이크로서비스 구축 경험을 해보고 싶으시다면 이 강의를 추천할게요!, 마이

www.inflearn.com