본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : Bean Validation 소개 및 스프링 적용하기

by 오주현 2022. 2. 14.
반응형

Bean Validation 소개 및 스프링 적용하기


검증 기는을 위해 매번 코드를 작성하지 않아도 어노테이션을 활용하여 검증을 할 수 있었다.

 

@NotBlank
private String itemName;

@NotNull
@Range(min = 1000, max = 1000000)
private Integer price;

이렇게 어노테이션을 활용해서 검증 로직을 사용할 수 있게 공통화, 표준화 한 것이 Bean Validation이다.

 

Bean Validation은 구현체가 아닌 검증 어노테이션과 여러 인터페이스의 모음이다. Bean Validation을 구현한 기술 중 일반적으로 사용하는 구현체가 하이버네이트 Validator이다.(이름이 하이버네이트지만 ORM과 상관이 없다.)

Bean Validation을 사용하려면 의존관계를 추가해야 한다.

 

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

bulid.gradle에 위 코드를 추가해줘야 한다. 의존관계를 추가하고 그레이들을 새로고침 해주면 라이브러리가 추가가 된다.

 

Jakarta Bean Validation에서 찾을 수 있는데 jakarta.validation-api는 Bean Validation 인터페이스이고 hibernate-validator은 구현체이다.

 

검증 어노테이션은 📝 ← 여기에서 확인할 수 있다. 위에서 사용한 @NotBlank는 빈값 + 공백만 있는 경우를 허용하지 않는다이고 null이 들어간 어노테이션은 null을 허용하지 않는다. min과 max가 들어간 코드는 min~max 범위 내여야 한다. 이렇게 쓰이게 된다.

 

강의에서 추가 정보도 알려주었는데 javax.validation으로 시작하면 특정 구현에 관계 없이 제공되는 표준 인터페이스이고 org.hibernate.validator로 시작하면 하이버네이트 validator 구현체를 사용할 때만 제공되는 검증 기능이라고 한다. 대부분 실무에서는 하이버네이트 validator를 사용한다고 한다.

 

public String addItem(@Validated @ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {

컨트롤러에서 @Validated를 꼭 넣어야 사용할 수 있는 것을 잊지 말아야 한다.

 


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글