이전 검증과정에서 적용했던 여러 복잡한 로직들을 모든 프로젝트에 공통적으로 적용되게 표준화 한 것이 바로 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 |