未来_我来
因为渴望改变,所以必须努力
 非注解的处理器映射器和适配器

  3.1 非注解的处理器映射器

    3.1.1 HandlerMapping处理器映射器

HandlerMapping 负责根据request请求找到对应的Handler处理器及Interceptor拦截器,将它们封装在HandlerExecutionChain 对象中给前端控制器返回。

 

      3.1.1.1 BeanNameUrlHandlerMapping

BeanNameUrl处理器映射器,根据请求的url与spring容器中定义的bean的name进行匹配,从而从spring容器中找到bean实例。

 

处理器映射器:

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

<!—beanName Url映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

 

      3.1.1.2 SimpleUrlHandlerMapping

simpleUrlHandlerMapping是BeanNameUrlHandlerMapping的增强版本,它可以将url和处理器bean的id进行统一映射配置。

 

    <!—简单url映射 -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/items1.action">controller的bean id</prop>
                <prop key="/items2.action">controller的bean id</prop>
            </props>
        </property>
    </bean>

 

另一个映射器:可以将url和handler集中配置

org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

 

 

测试:

http://localhost:8080/springmvcfirst1217/queryItems.action

http://localhost:8080/springmvcfirst1217/queryItems1.action

http://localhost:8080/springmvcfirst1217/queryItems2.action

都可以访问

 

多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。

 

  3.2 非注解的处理器适配器

    3.2.1 HandlerAdapter处理器适配器

HandlerAdapter会根据适配器接口对后端控制器进行包装(适配),包装后即可对处理器进行执行,通过扩展处理器适配器可以执行多种类型的处理器,这里使用了适配器设计模式。

 

      3.2.1.1 SimpleControllerHandlerAdapter

SimpleControllerHandlerAdapter简单控制器处理器适配器,所有实现了org.springframework.web.servlet.mvc.Controller 接口的Bean通过此适配器进行适配、执行。

 

适配器配置如下:

 

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

 

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter

要求编写的Handler实现 Controller接口。

 

      3.2.1.2 HttpRequestHandlerAdapter

HttpRequestHandlerAdapter,http请求处理器适配器,所有实现了org.springframework.web.HttpRequestHandler 接口的Bean通过此适配器进行适配、执行。

 

适配器配置如下:

 

<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>

 

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

要求编写的Handler实现 HttpRequestHandler接口。

 

 

 

 

测试:

http://localhost:8080/springmvcfirst1217/queryItems3.action

可以成功访问

posted on 2018-01-23 19:09  未来_我来  阅读(226)  评论(0编辑  收藏  举报

2 3
4