`

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优先被调用。
分享到:
评论

相关推荐

    SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门

    Spring MVC提供了多个HandlerAdapter实现,如RequestMappingHandlerAdapter、SimpleControllerHandlerAdapter等,每个适配器都对应处理特定类型的处理器。 以RequestMappingHandlerAdapter为例,它主要用于处理带有...

    SpringMVC完整使用教程

    你可以直接在方法签名中使用参数,如 `String name` 来获取请求参数;或者使用 `@RequestParam` 注解指定参数名。对于复杂的数据结构,可以使用 POJO 类绑定请求参数值,SpringMVC 会自动将请求参数填充到对象中。...

    Spring+SpringMVC+Mybatis动态链接多数据源

    1. **配置数据源**:首先,你需要配置多个数据源,可以使用Spring的AbstractRoutingDataSource作为基础,该类可以根据某种路由策略(如线程本地变量、请求参数等)动态选择数据源。 2. **定义路由逻辑**:创建一个...

    SpringMVC PPT_springmvc_

    Controller 是处理用户请求的类,通常包含多个处理方法。这些方法接收请求参数,处理业务逻辑,并返回 ModelAndView 对象,该对象包含了模型数据和视图信息。 五、ModelAndView ModelAndView 是一个组合模型数据和...

    SpringMVC中文教程

    为了更好地理解和掌握SpringMVC的应用,可以通过实际案例来学习如何搭建一个简单的Web应用程序,包括配置文件的编写、控制器的定义、视图的渲染等步骤。 #### 十、扩展阅读 除了本文档之外,还可以参考以下资源以...

    SpringMVC简介与多线程解决方案

    在SpringMVC应用中,可以在服务层(Service)使用`@Async`注解实现多线程。首先,配置`ThreadPoolTaskExecutor`,然后在需要异步执行的方法上添加`@Async`,这样当控制器调用这个方法时,它将在后台线程中执行,主线...

    SpringMVC实现一个完整的项目

    在本项目中,我们将深入探讨如何使用SpringMVC框架构建一个功能完备的Web应用程序。SpringMVC是Spring框架的一...在实际开发中,还会涉及到错误处理、国际化、安全控制等多个方面,进一步提升项目的完整性和专业性。

    开源框架面试题系列:Spring+SpringMVC+MyBatis.zip

    Spring还包含了众多模块,如Spring JDBC、Spring ORM、Spring Web等,覆盖了数据访问、Web应用、事务管理等多个领域。 SpringMVC是Spring框架的一部分,专门用于处理Web应用的请求-响应模型。它遵循MVC(Model-View...

    传智播客springMVC公开课

    它包含丰富的组件,如表格、表单、树形菜单等,与 SpringMVC 结合使用可以快速搭建美观且功能强大的用户界面。 在“传智播客springMVC公开课”的代码示例中,`SpringMVCDemo` 可能包含了实际的项目结构、配置文件、...

    SpringMVC与struts的区别

    DispatcherServlet是一个Servlet,因此可以在web.xml文件中配置多个DispatcherServlet实例。 HandlerMapping接口是SpringMVC中的一种处理请求的映射机制。它负责将用户的请求映射到对应的Controller中。...

    SpringMvc学习笔记

    Spring MVC 是一个强大的Java web应用程序开发框架,它作为Spring框架的一部分,主要...在实际开发中,你还可以探索更多的功能,如注解驱动、数据绑定、异常处理、国际化、Ajax支持等,以构建更加高效和灵活的Web应用。

    springmvc+hibernate多表映射

    在“一对多”关系中,一个实体可以对应多个其他实体。例如,一个部门可以有多个员工。在Hibernate中,我们通过在实体类上添加注解来定义这种关系。在主表(一对一或一对多的一端)上,我们使用`@OneToMany`注解,而...

    .Net SpringMVC 代码

    2. **面向切面编程**:SpringMVC 还支持 AOP,允许开发者定义横切关注点,如日志、事务管理等,这些关注点可以在多个方法或类之间共享,降低了代码的耦合度。 **四、SpringMVC 开发实践** 在实际开发中,我们可以...

    自主实现的简易SpringMVC

    Controller通常包含多个处理方法,每个方法对应一个URL映射,负责业务逻辑的处理。 3. **视图解析(View Resolution)**: 虽然没有明确提到,但可以假设在WEB-INF目录下可能包含了JSP页面或其他视图资源。视图解析...

    springmvc中文学习文档

    10. **国际化和本地化**:讲解如何通过Spring MVC实现内容的多语言支持,包括资源文件的配置和LocaleResolver的使用。 11. **模板引擎**:如果文档深入,可能会讨论如何集成和使用模板引擎如Thymeleaf,来提高视图...

    SpringMVC4.2.4中文文档 PDF-高清带书签版本

    2. **配置与设置**:讲解如何在项目中配置SpringMVC,包括web.xml中的DispatcherServlet配置、Spring MVC的配置文件、以及如何将SpringMVC集成到Spring IoC容器中。 3. **处理器映射器与适配器**:解释...

    2023年SpringMVC学习笔记.doc

    HandlerMapping是SpringMVC中的一个重要组件,它负责将用户的请求映射为HandlerExecutionChain对象,包含一个Handler解决器对象和多个HandlerInterceptor拦截器对象。HandlerMapping使用策略模式,使得添加新的映射...

    springMvc中文 pdf下载

    5. **@RequestParam**:用于获取请求参数,可以从请求 URL 或请求体中获取参数值。 6. **@ModelAttribute**:将模型数据绑定到方法参数,通常用于表单提交后,从请求中恢复模型对象。 7. **@ResponseBody**:将方法...

    传播智客springmvc课堂中的工程代码

    开发者通常会定义一个或多个处理HTTP请求的方法,并用`@RequestMapping`注解来映射URL。 3. **Model**:模型对象包含业务数据,它们可以是JavaBeans或其他自定义对象,用于在控制器和视图之间传递数据。 4. **View...

    netty整合SpringMVC实现下载

    - 在 Netty 服务器端,创建一个自定义的 HttpObjectAggregator,用于聚合多个 ByteBuf 到一个完整的 HttpMessage,以便处理文件内容。 - 实现一个 ChannelInboundHandler,负责处理 HTTP GET 请求,并从 SpringMVC...

Global site tag (gtag.js) - Google Analytics