• 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可能指向同一个 处理器

     

      

  • 相关阅读:
    [LeetCode]Search a 2D Matrix
    [LeetCode]Trapping Rain Water
    [LeetCode]Container With Most Water
    [LeetCode]Permutations
    [LeetCode]Missing Number
    [LeetCode]Set Matrix Zeroes
    [LeetCode]Find Peak Element
    [LeetCode]Balanced Binary Tree
    [LeetCode]Spiral Matrix II
    [LeetCode]Spiral Matrix
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7405205.html
Copyright © 2020-2023  润新知