스프링 프레임워크 MVC 기능 수행 과정
DispatcherServlet 관련 설정 해주기
HandlerMapping, ViewResolver, component-scan, bean, resources 등 설정
DispatcherServlet으로 들어온 모든 요청을 Controller로 위임처리하는 설정
BeanNameUrlHandlerMapping
,DefaultAnnotationHandlerMapping
,RequestMappingHandlerMapping
는 단일 사용 시 Default로 설정되어 있어 다른 HandlerMapping 클래스를 함께 사용하는 것이 아니면 일부러 선언할 필요는 없다.
어노테이션 사용 URL과 일치하는 이름 갖는 빈의 이름을 Controller로 매핑
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/userName.do" class="com.myspring.javaweb.HomeController">
즉 URL
이 /userName.do
이면 HomeController
로 요청 위임
어노테이션을 사용해 url과 controller 매핑
<bean class="org.springframework.web.servlet.handler.DefaultAnnotationHandlerMapping"/>
<context:component-scan base-package="com.myspring.javaweb"/>
어노테이션을 사용해 url과 controller 매핑
DefaultAnnotationHandlerMapping
과 사용법이 거의 동일
1. <mvc:annotation-driven/>
여기부터 사용을 위해 설정해줘야하는 HandlerMapping이다.
URL과 일치하는 클래스 이름을 갖는 빈을 Controller로 사용한다.
이 때 suffix인 Controller를 제거한 나머지 이름의 소문자로 url mapping 한다.
<bean class="org.springframework.web.servlet.handler.ControllerClassNameHandlerMapping"/>
<bean name="/userName.do" class="com.myspring.javaweb.HomeController">
URL
이 /home*
이면 HomeController
로 요청 위임
URL 패턴에 매칭되는 지정 Controller를 사용(복수 지정 가능)
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/home">HomeController</prop>
<prop key="/emp">EmpController</prop>
</property>
</bean>
빈의 아이디, 이름을 통해 매핑한다.
<bean id="test" class="org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping"/>
@Component("test")
public class TestController implements Controller{}