본문 바로가기

Tech/Spring

[Spring] HandlerMapping

 

1. BenaNameUrlHanlderMapping

  • url과 일치하는 이름을 갖는 빈의이름을 컨트롤러를 매핑
<bean class="org.springframeworkweb.servlert.handler.BenaNameUrlHandlerMapping" /> 
<bean id="index.do" class="package path/IndexController" />

url이 /index.do로 요청이 들어온다면 IndexContrller로 요청위임

2. ControllerClassNameHandlerMapping

  • url과 일치하는 클래스 이르을 갖는 빈을 Controller로 사용
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
<bean class="pacakage path.IndexController" />
<bean class="pacakage path.HomeController" />

ControllerClassNameHandlerMapping과 함께 controller를 같이 빈등록하면
/index 의 url 요청은 IndexController 로
/home
의 url 요청은 HomeController 로 매핑이 됨

3. SimpleUrlHandlerMapping

  • url 패턴에 매핑되는 지정된 controller를 매핑
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/index.do">indexController</prop>
        </props>
    </propery>
</bean>

<bean id="indexController" class="package path.IndexController" />

SimpleUrlHandlerMapping은 하나의 컨트롤러에도 여러 url 매핑이 가능하다
key값에 여러 url 패턴을 각각 지정하고 value 에 하나의 컨트롤 id를 지정하면 된다

4. DefaultAnnotationHandlerMapping

  • 어노테이션을 이용해 url과 컨트롤러를 매핑하는 방법
  • 기본 HandlerMapping 이므로 빈 설정 파일에 별도로 선언해주지 않아도 됨
  • 다른 HandlerMapping 과 함께 사용한다면 선언해줘야 함
<context:component-scan base-package="package path" />

@Controller 
public class IndexController { 

    @RequestMapping("/index.do") 
    public String index() { 
        .... 
    } 
}

위의 3개의 handler mapping은 url 과 controller 의 매핑이라면 DefaultAnnotationHandlerMapping 은 controller안 url과 method를 매핑시킬 수 있음

 

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

[Spring] ViewResolver  (0) 2019.04.14
[Spring] Controller Retrun Type 종류  (0) 2019.04.14
[Spring] Controller  (0) 2019.04.14
[Spring] HandlerMapping  (0) 2019.04.14