본문 바로가기
WEB/Spring

HandlerMethodArgumentResolver

by 노랑파랑 2017. 2. 1.
반응형

 

 

HandlerMethodArgumentResolver

 ▷스프링 3.1에서 추가된 인터페이스 이전의 ArgumentResolver 사용은 추천하지 않는다고 명시되어있다.

 ▷Controller개발 중에 들어오는 파라미터를 수정하거나 공통적으로 추가해야 할 경우 필요한 값들을 Controller에서 바로 사용할 수 있게 해준다.

▷컨트롤러의 파라미터가 Map이면 동작하지 않는 경우가 있다. (Map은 ArgumentResolver에서 동작하게 된다.)

▷supportsParameter, resolveArgument를 상속받아 구현 해야한다.

 

import org.springframework.core.MethodParameter; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; import com.web.test.domain.model.User; public class UserArgumentResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter parameter) { return User.class.isAssignableFrom(parameter.getParameterType()); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { User user = new User();

user.setState("테스트 중입니다.");

return user;

} }

 

 

메소드 정리

supportsParameter

▷Resolver가 적용 가능한지 여부를 검사한다.

▷컨트롤러의 파라미터가 필요한 클래스인지 검사한다.

resolveArgument

파라미터와 기타 필요한 정보를 받아 실제 객체를 반환한다. 

 

 

반응형

'WEB > Spring' 카테고리의 다른 글

JPA (Java Persistence API )  (0) 2017.04.21
@Controller  (1) 2017.01.30
Spring Boot : Bootstrap 연결  (0) 2017.01.20
Spring Boot에서 Jsp 사용  (0) 2017.01.20
Spring Boot  (0) 2017.01.20