많이 들어는 봤지만, 정확히 뭔지 알아본 적이 없어서 정리해본다.
dispatcherServlet으로 받은 요청을 Controller로 보내지는데,
그런 요청이 어떤 룰으로 컨트롤러에게 보내는지(매핑하는지), 그 방법을 정해주는 클래스가 바로 Handler다.
다시말해 http://localhost:8080/test라는 요청이 있고,
임의의 컨트롤러 HomeControllerd에서
@Controller
class HomeController {
@RequestMapping(value = "/test")
public String test() {
return "test";
}
}
위와같이 RequestMappirng으로 무의식적으로 url과 연결지어 준 게 그냥 된 것이 아니라
핸들러가 있어서 가능했던 것이다.
스프링에서 기본적으로 제공해주는 Handler Mapping 클래스는 4개가 있다.
- BeanNameUrlHandlerMapping
- ControllerClassNameHandlerMapping
- SimpleUrlHandlerMapping
- DefaultAnnotationHandlerMapping
이름을 보면 사용법이 대강 예측이 가는데, 첫 3개 클래스는 xml을 이용하면 된다.
마지막 DefaultAnnotationHandlerMapping이 일반적으로
<context:component-scan base-package="패키지경로" />
위처럼 패키지경로를 등록한 후, 해당 컨트롤러에 comp@Controller 어노테이션을 사용하는 방법인데
자세한 것은 필요할 때 찾아보면 될 것 같고,
무심코 사용하는 위 방법이 핸들러가 있어서 가능하다는 것만 알면 될 것 같다.
-출처
'SPRING' 카테고리의 다른 글
스프링 ContextLoaderListener 의 역할 (0) | 2020.04.02 |
---|---|
스프링 classpath가 가리키는 곳 (0) | 2020.04.02 |
Spring Framework 기본 동작 순서 및 구조 (0) | 2020.04.02 |
web.xml, servlet-context.xml, root-context.xml 간단 정리 (0) | 2020.04.01 |