4.SpringMVC 配置式开发-处理器映射器

处理器映射器 HandlerMapping

  HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器,

  并将它们封装在HandlerExecutionChain 对象中,返回给中央调度器

  其常用的实现类有两种:

  1.BeanNameUrlHandlerMapping(默认)

  2.SimpleUrlHandlerMapping

 

BeanNameUrlHandlerMapping

  1.根据请求的url与 与id 属性相匹配时,访问 class 属性对应的处理器

  <bean id="/hello.do" class="com.springmvc.handlers.MyController"/>

  2.id属性的 值 必须 以  “/” 开头(可依查看源码确定)

  3.但是一个处理器Bean只能绑定一个请求url,如果出现多个url请求同一个处理器的情况,

  就需要在Spring容器中配置多个该处理器类的<bean/>,

 

SimpleUrlHandlerMapping

  将 url 与处理器的定义分离,还可以对url进行统一映射管理

 1 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 2         <!-- 可以使用这两种方式(设置 mappings 属性 和 urlMap 属性) 将 一个处理器和 多个 url 绑定 -->
 3          <!-- <property name="mappings">
 4             <props>
 5                 <prop key="/hello.do">myController</prop>
 6                 <prop key="/helloworld.do">myController</prop>
 7                 <prop key="/world.do">myController</prop>
 8             </props>
 9         </property>-->
10         
11         <property name="urlMap">
12             <map>
13                 <entry key="/hello.do" value-ref="myController"/>
14                 <entry key="/helloworld.do" value-ref="myController"/>
15                 <entry key="/world.do" value-ref="myController"/>
16             </map>
17         </property>
18         
19     </bean>
1 <bean id="myController" class="com.springmvc.handlers.MyController"/>
2     <!-- 如果 一个处理器 要绑定 多个url ,则需要创建多个 MyController ,这是一种浪费 ,所以可以使用SimpleUrlHandlerMapping-->

这样,当我们访问多个不同的url,时,这些url可能指向同一个 处理器

 

 

  

posted @ 2017-08-21 16:37  白日梦想家12138  阅读(126)  评论(0编辑  收藏  举报