많이 들어는 봤지만, 정확히 뭔지 알아본 적이 없어서 정리해본다.
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 어노테이션을 사용하는 방법인데
자세한 것은 필요할 때 찾아보면 될 것 같고,
무심코 사용하는 위 방법이 핸들러가 있어서 가능하다는 것만 알면 될 것 같다.
잘 기억은 나지 않지만, 입사 후 첫 프로젝트에서 핸들러를 사용해서 여러가지 필터 비슷한 작업을 해놨던 거 같던데,,
이름만 핸들러였는지 한번 알아봐야 할 것 같다.
'Dev- > Spring' 카테고리의 다른 글
스프링 빈 객체 사용 클래스 - AppicationContext (0) | 2019.03.16 |
---|---|
스프링 여러가지 의존성 주입(DI) 방법 (0) | 2019.03.16 |
servlet-context.xml, root-context.xml, web.xml 차이점 알기! (0) | 2018.08.16 |
Spring Security 관련 에러 해결법 (0) | 2018.08.15 |
아주 기초적인 Spring Security 사용법 (1) (0) | 2018.08.15 |