SpringMVC中可以运用多个HandlerMapping

SpringMVC中可以使用多个HandlerMapping
在基于Spring MVC的Web应用程序中,我们可以为DispatcherServlet提供多个Handler- Mapping供其使用。DispatcherServlet在选用HandlerMapping的过程中,将根据我们所指定的一系列HandlerMapping的优先级进行排序,然后优先使用优先级在前的HandlerMapping。如果当前的HandlerMapping能够返回可用的Handler,DispatcherServlet则使用当前返回的Handler进行Web请求的处理,而不再继续询问其他的HandlerMapping。否则,DispatcherServlet将继续按照各个HandlerMapping的优先级进行询问,直到获取一个可用的Handler为止。

HandlerMapping的优先级规定遵循Spring框架内一贯的Ordered接口所规定的语义。Spring MVC中可用的HandlerMapping实现全都实现了Ordered接口。假设我们优先使用SimpleUrl- HandlerMapping进行Handler的映射管理,其次使用BeanNameUrlHandlerMapping,那么就可以在DispatcherServlet特定的WebApplicationContext中增加如代码清单24-3所示的配置内容。

代码清单 HandlerMapping指定优先级配置代码示例
<bean id="handlerMapping" class="org.
springframework.Web.servlet.handler.?   
SimpleUrlHandlerMapping">   
    <property name="order" value="1"/>   
    <property name="mappings">   
        <value>   
                ...   
        </value>   
    </property>   
</bean>   
  
<bean id="defaultHandlerMapping" ?   
class="org.springframework.Web.servlet.
handler.BeanNameUrlHandlerMapping">   
</bean>  


如果不为HandlerMapping明确指定order,那么默认值为Integer.MAX_VALUE,对应最低优先级。所以,拥有order值为1的SimpleUrlHandlerMapping较之BeanNameUrlHandlerMapping优先被调用。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值