반응형
🤍 HandlerMethodArgumentResolver 인터페이스
Spring MVC에서 컨트롤러 메소드의 매개변수를 동적으로 바인딩하기 위해 사용되는 인터페이스입니다.
🤍 사용 목적
Spring MVC는 HTTP 요청이 컨트롤러로 들어올 때, 요청 데이터를 기반으로 컨트롤러 메서드의 매개변수를 생성하고 주입하는데, 이 과정에서 기본 제공되는 바인딩 로직 외에 사용자 정의 로직을 추가하고 싶을 때 이 인터페이스를 사용합니다.
간단히 말해서, 지원하지 않는 매개변수 바인딩 로직을 구현하기 위해 사용됩니다.
🤍 주요 메소드
1. supportsParameter(MethodParameter parameter)
- 특정 매개변수가 이 리졸버에 의해 처리될지 결정한다
- true 반환 시, 해당 매개변수는 이 리졸버에서 처리된다
public boolean supportsParameter(MethodParameter parameter) {
// 매개변수가 @AuthenticatedUser 어노테이션을 가졌는지 확인
return parameter.hasParameterAnnotation(AuthenticatedUser.class);
}
2. resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory)
- supportsParameter가 true인 경우, 이 메서드가 호출됩니다.
- 요청 데이터, 쿠키, 헤더, 세션 등 다양한 정보를 기반으로 매개변수를 생성하고 반환합니다.
@Override
public Object resolveArgument(
MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest,
WebDataBinderFactory binderFactory) {
// 세션에서 사용자 정보를 가져와서 반환
HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();
return request.getSession().getAttribute("user");
}
반응형
'Programming > For interview' 카테고리의 다른 글
[Servlet/Spring] Filter, Interceptor, AOP의 차이 (0) | 2025.01.18 |
---|---|
[Java] Java 버전에 따른 핵심 변경 사항 (Java8) (0) | 2024.12.18 |
[JavaScript] JS 기초 중에서 기초, DOM 구조에 대해서 알아보자 (0) | 2024.12.18 |
[Git] Git의 3가지 영역 (0) | 2024.12.17 |
[Spring] Mock 테스트 (1) | 2024.12.04 |