SpringMVC中可以运用多个HandlerMapping

来源:互联网 发布:amd显卡游戏优化 编辑:程序博客网 时间:2024/06/10 05:37
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 0
原创粉丝点击