HandlerMethodArgumentResolver
- HandlerMethodArgumentResolver는 Interface로써, Controller의 Argument(Parameter)에 지정된 변수들을,Annotation이나 객체의 Type에 따라서 Resolver를 먼저 거쳐, 실제 Data를 Controller에 넘겨주는 역할을 수행한다
- Controller에 들어오는 Argument(Parameter)를 가공(암호화 > 복호화) 하거나,Argument(Parameter)를 추가하거나 수정해야 하는 경우에 사용한다.

사용이유
- HandlerMethodArgumentResolver를 사용하는 이유는, 매개변수로 사용되는 인자에 대해 공통적으로 처리해야할 로직등이 있을 경우, 중복 코드를 줄이고 공통 기능으로 추출하여 사용할 수 있다.
동작 방식
- Client Request 요청
- Dispatcher Servlet에서 해당 요청 처리
- Client Request에 대한 Handler Mapping
- RequestMapping에 대한 매칭 (RequestMappingHandlerAdapter가 수행)
- Interceptor 처리
- Argument Resolver 처리 <-- Argument Resolver 실행 지점
- Message Converter 처리
정리하자면 특정 Request가 Handler로 Mapping되는 과정에서 invoke 되기전,Interceptor > Resolver > MessageConverter 순으로 처리된 후, Controller의 Method가 invoke 된다.
'프레임워크 > Spring boot' 카테고리의 다른 글
Object Mapper 구현하기 (0) | 2022.09.23 |
---|---|
Spring> Spring REST> JSON Data Binding (0) | 2022.09.20 |
@Transactional을 선언했을때의 코드 흐름(내부 구조까지) (0) | 2022.08.22 |
왜 ReponseEntity를 사용할까? (0) | 2022.08.15 |
Spring Boot는 Run시에 무엇을 할까 - Spring AOP (0) | 2022.08.14 |