-
HandlerMethodArgumentResolverJava & Spring/기본 개념 정리 2021. 7. 13. 12:25반응형
HandlerMethodArgumentResolver
- 컨트롤러에서 파라미터를 바인딩 해주는 역할
- 요청 파라미터를 수정하거나 클래스 파라미터를 조작, 공통으로 쓸 파라미터를 바인딩
- 공통으로 수행할 작업을 수행한 후, Object를 반환해서 코드의 중복을 줄임
- HandlerMethodArgumentResolver 인터페이스를 구현한 구현체를 WebMvcConfigurer 인터페이스 구현체의 addArgmuentResolver에 등록해서 사용
- supportsParameter와 resolveArgument 2개의 메서드를 오버라이딩하여 구현
- supportsParameter
- boolean 값으로 반환하는 메소드
- 요청으로 들어온 MethodParameter가 resolveArgument 수행이 필요한 경우 true를, 아니라면 false를 리턴하도록 구현
- resolveArgument
- 바인딩할 객체를 조작하는 메소드
- MethodParameter는 필수 파라미터, 나머지 파라미터들은 선택적
- 메소드로 전달받은 파라미터 중 NativeWebRequest 타입의 인스턴스를 통해 요청으로 들어온 query parameter를 받아올 수 있음
-
@Override public Object resolveArgument(MethodParameter param, ModelAndViewContainer container, NativeWebRequest webRequest, WebDataBinderFactory factory) throws Exception { String name = webRequest.getParameter("name"); ... // logic & return Object }
-
Reference
반응형'Java & Spring > 기본 개념 정리' 카테고리의 다른 글
Spring boot actuator (0) 2021.07.13 xml 설정과 Java Config 설정 (2) 2021.04.09 Spring IoC/DI (0) 2021.01.30 - 컨트롤러에서 파라미터를 바인딩 해주는 역할