본문 바로가기
MVC with 김영한

Bean Validation

by wonseok99 2021. 12. 14.

 

이전 검증과정에서 적용했던 여러 복잡한 로직들을 모든 프로젝트에 공통적으로 적용되게 표준화 한 것이 바로 Bean Validation 이다.

 

- Bean Validation

Bean Validation은 특정한 구현체가 아닌 표준 기술이다. (검증 어노태에션과 인터페이스의 모음)

ex) JPA(표준기술)  →  Hibernate(구현체)

 

 

 

-  검증 애노테이션

@NotBlank : 빈값 + 공백만 있는 경우를 허용하지 않는다.
@NotNull : null 을 허용하지 않는다.
@Range(min = 1000, max = 1000000) : 범위 안의 값이어야 한다.
@Max(9999) : 최대 9999까지만 허용한다.

 

 

- Bean Validation 사용방법

@PostMapping("/add")
public String addItem(@Validated @ModelAttribute Item item, BindingResult bindingResult,
    RedirectAttributes redirectAttributes) {
    ...

1. build.gradle에 spring-boot-starter-validation 라이브러리를 implementation 해주면, 자동으로 Bean Validator를 인지하고 스프링에 통합한다.

2.스프링 부트가 자동으로 글로벌 Validator를 등록한다. 따라서 검증하고자 하는 메소드에 @Valid, @Validated만 적용하면 된다.

 

 

- 검증 순서

1. @ModelAttribute 를 통해 객체를 생성하고, 각각의 필드에 타입 변환 시도 (바인딩 실패시 typeMismatch로 FieldError 추가)

2. Validator를 적용한다.

'MVC with 김영한' 카테고리의 다른 글

Validation  (0) 2021.12.06
타임리프(thymeleaf)  (0) 2021.11.15
요청 매핑 핸들러 어뎁터  (0) 2021.10.22
HTTP 요청과 응답  (0) 2021.10.20
로깅(logging)  (0) 2021.10.17