[Spring] Spring ArgumentResolver란?
1. ArgumentResolver란?
- Controller로 들어온 파라미터를 가공하거나 수정 기능을 제공하는 객체
- 주로 컨트롤러 단에서 중복 코드를 제거하려는 목적으로 사용
HandlerMethodArgumentResolver
를 구현한 ArgumentResolver를 WebMvcConfig를 구현한 설정 파일에 등록하여 사용
2. 동작 과정
-
- 인터셉터 이후에 동작을 함.
- 인터셉터는 컨트롤러를 부를수 있는지 유무를 검사하는 반면에 ArgumentResolver는 컨트롤러가 원하는 객체를 생성해서 반환해준다.동작 과정
- 인터셉터 이후에 동작을 함.
3. 인터페이스
public interface HandlerMethodArgumentResolver {
boolean supportsParameter(MethodParameter parameter);
@Nullable
Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception;
}
supportsParameter(...)
: 해당 ArgumentResolver를 사용할 수 있는 객체인지 확인- ArgumentResolver는 주로 애노테이션으로 사용하므로 다음과 같이 사용한다.
resolveArgument(...)
: ArugmentResolver로 처리하고 싶은 동작을 정의하는 메서드
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.hasParameterAnnotation(MyAnnotation.class);
}
※ 참조
'FRAMEWORK > [SPRING]' 카테고리의 다른 글
[Spring] Spring에서 DI하는 3가지 방법 (1) | 2023.04.21 |
---|---|
[Spring] RestAssured로 API 테스트 진행하기 (1) | 2023.04.13 |
[Spring] 스프링 필터(Filter) vs 인터셉터(Interceptor) (0) | 2022.08.09 |
[Spring] Jar vs War (0) | 2022.06.27 |
[Spring] Spring 검증 기능2 (Bean Validation) (0) | 2022.06.09 |