Notice
Recent Posts
Link
Tags
- springboot
- PYTHON
- sql
- Django
- 프로그래머스
- spring mvc
- mysql
- nginx
- select
- jpa
- session
- @transactional
- java
- string
- spring boot
- Docker
- join
- 데이터베이스
- DI
- Git
- 스프링부트
- spring security 6
- spring
- ORM
- AWS
- 자바
- 스프링
- 문자열
- SSL
- 1차원 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Archives
개발하는 자몽
Bean Validation - HTTP 메시지 컨버터 본문
섹션 5. 검증 2 - Bean Validation
Validator인 @Valid, @Validated는 HttpMessageConverter(@RequestBody)에도 적용할 수 있다.
@ModelAttribute의 경우 각 필드 단위로 세밀하게 적용된다. 따라서 특정 필드에 타입이 맞지 않는 오류가 발생해도 나머지 필드는 정상 처리할 수 있다.
HttpMessageConverter는 @ModelAttribute와 다르게 필드 단위로 적용되는 것이 아닌, 전체 객체 단위로 적용된다. 때문에 메시지 컨버터의 작동이 성공해서 Item 객체(domain)를 만들어야 @Valid, @Validated가 적용된다. 자세히는, HttpMessageConverter가 정상 동작하여 Json이 객체로 변경이 되어야 검증(@Valid, @Validated)을 할 수 있다. 즉, 객체로 변경되지 않으면 컨트롤러도 호출되지 않고, Validator도 적용할 수 없다.
(@RequestBody를 적용한다는 뜻은 view를 반환하는 것이 아닌 json 등의 형태로 반환한다는 의미. 정말 쉽게 이해하려면... @Controller(view 반환)가 아니라 @RestController(json 반환)를 적용한다고 보면 된다))
'Java' 카테고리의 다른 글
리플렉션(Reflection) (0) | 2023.03.28 |
---|---|
동시성 문제와 쓰레드 로컬 (0) | 2023.03.22 |
Bean Validation - 에러 코드 (0) | 2023.03.10 |
Class.isAssignableFrom (0) | 2023.03.08 |
체크 예외, 언체크 예외 (0) | 2022.09.22 |
Comments