`
rjw
  • 浏览: 57802 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

New Support Classes for @RequestMapping methods in Spring MVC 3.1

阅读更多

New Support Classes for @RequestMapping methods in Spring MVC 3.1

Spring 3.1 introduced a new set of support classes for @RequestMapping methods called RequestMappingHandlerMapping and RequestMappingHandlerAdapter respectively. They are recommended for use and even required to take advantage of new features in Spring MVC 3.1 and going forward. The new support classes are enabled by default by the MVC namespace and the MVC Java config but must be configured explicitly if using neither. This section describes a few important differences between the old and the new support classes.

Prior to Spring 3.1, type and method-level request mappings were examined in two separate stages — a controller was selected first by the DefaultAnnotationHandlerMapping and the actual method to invoke was narrowed down second by the AnnotationMethodHandlerAdapter.

With the new support classes in Spring 3.1, the RequestMappingHandlerMapping is the only place where a decision is made about which method should process the request. Think of controller methods as a collection of unique endpoints with mappings for each method derived from type and method-level @RequestMapping information.

This enables some new possibilities. For once a HandlerInterceptor or a HandlerExceptionResolver can now expect the Object-based handler to be a HandlerMethod, which allows them to examine the exact method, its parameters and associated annotations. The processing for a URL no longer needs to be split across different controllers.

There are also several things no longer possible:

  • Select a controller first with a SimpleUrlHandlerMapping or BeanNameUrlHandlerMapping and then narrow the method based on @RequestMapping annotations.
  • Rely on method names as a fall-back mechanism to disambiguate between two @RequestMapping methods that don’t have an explicit path mapping URL path but otherwise match equally, e.g. by HTTP method. In the new support classes @RequestMapping methods have to be mapped uniquely.
  • Have a single default method (without an explicit path mapping) with which requests are processed if no other controller method matches more concretely. In the new support classes if a matching method is not found a 404 error is raised.

The above features are still supported with the existing support classes. However to take advantage of new Spring MVC 3.1 features you’ll need to use the new support classes.

---------------------------------------------------------------------------------------

翻译一下这段官方的文档:

----------------------------------------------------------------------------------------

Spring MVC 3.1 中用一些新类支持注解符号@RequestMapping

Spring3.1 介绍了一套新的类用于实现@RequestMapping 方法,它们分别是RequestMappingHandlerMapping和RequestMappingHandlerAdapter。官方建议开发者使用这套新的类,而且这也是spring mvc 3.1 新功能所必需的。默认这套新类功能是打开的,可以通过MVC命名空间和MVC java 配置文件来使用。如果不需要,则必须明确的注明。这一小节讲了新旧两套类的几个重要的区别。

spring3.1之前, 类型和方法级请求要被两个类分别处理: 一是DefaultAnnotationHandlerMapping类选择的一个控制器类,二是调用AnnotationMethodHandlerAdapter类去触发实际的方法。

spring3.1中, 类RequestMappingHandlerMapping是唯一处理这种请求的类。这个类决定哪个方法去处理这个请求。不妨把控制器方法看做是处理这类请求的唯一终点的方法的集合。

这样就会产生一些新的功能。就这一次HandlerInterceptor或者HandlerExceptionResolver类就能预计到基于对象的处理器成为一个HandlerMethod类,进而让他们保证正确的方法、参数和相关的注解。对URL的处理不再需要根据不同的控制器拆分。

下面是新的spring MVC中不再适用的:

1. 首先用SimpleUrlHandlerMappng或BeanNameUrlHandlerMapping选择一个控制器类,然后根据@RequestMapping注解选择一个方法。

2. 依靠方法名区分两个@RequestMapping方法的低效运行机制。@RequestMapping方法中没有显示地路径映射到URL路径但是在其他方面例如HTTP方法却是相同的。在新的spring MVC3.1中@Request方法无疑是显示唯一的映射的。

3.如果没有其他控制器方法处理的话,会有一个单独默认的方法(没有显示的路径映射)用来处理请求。然而在spring MVC3.1中如果一个想对应的方法没有找到,会报404错误。

上面这些功能在新的版本中仍然支持。但是如果要用spring MVC 3.1的新功能的话,还是要用新的这套类。

 

 

 

分享到:
评论

相关推荐

    Spring MVC之@RequestMapping详解

    《Spring MVC之@RequestMapping详解》 在Java Web开发中,Spring MVC框架因其强大的功能和灵活性而备受青睐。在处理HTTP请求时,@RequestMapping注解扮演着至关重要的角色,它负责将客户端的请求映射到控制器中的...

    Spring MVC--2.@RequestMapping 映射请求

    在Spring MVC框架中,`@RequestMapping`注解是核心组件之一,它用于处理HTTP请求映射,使得控制器类(Controller)中的方法能够与特定的URL路径关联起来。本篇文章将深入探讨`@RequestMapping`的使用、功能以及相关...

    简化版@requestmapping注解注册源码

    在Spring MVC框架中,`@RequestMapping`注解是核心组件之一,它用于处理HTTP请求映射,使得控制器类或方法能够与特定的URL路径关联。本文将深入解析`@RequestMapping`的工作原理,并介绍一个简化版的自定义实现,...

    springmvc关于@requestMapping和@requestParam的使用

    在Spring MVC框架中,`@RequestMapping` 和 `@RequestParam` 是两个非常重要的注解,它们在处理HTTP请求和参数绑定方面起着核心作用。本文将深入探讨这两个注解的使用和功能。 `@RequestMapping` 是Spring MVC用于...

    spring MVC 3.1 spring security 注解实现安全机制

    Spring MVC和Spring Security是Java开发中两个非常重要的框架,它们分别负责Web应用的MVC架构设计和安全管理。在Spring MVC 3.1版本中,它提供了更强大的注解支持,使得开发者可以更加简洁地定义控制器和处理HTTP...

    SpringMVC@RequestMapping(重点)@RequestParam@PathVariable示例

    在Spring MVC框架中,`@RequestMapping`、`@RequestParam`和`@PathVariable`是三个非常重要的注解,它们用于处理HTTP请求并绑定请求参数到控制器方法的参数上。接下来,我们将详细探讨这三个注解的工作原理以及如何...

    SpringMVC-2 使用@RequestMapping映射请求

    总结起来,`@RequestMapping`是Spring MVC中实现请求映射的关键工具,它允许开发者灵活地根据URL、请求方法、参数和头信息来映射处理逻辑。而`HiddenHttpMethodFilter`则解决了在非RESTful环境中模拟其他HTTP方法的...

    SpringMybatis项目基于@RequestMapping和RequstAttribute实现登录注册

    在SpringMybatis项目中,利用`@RequestMapping`和`RequestAttribute`实现登录注册功能是Web开发中的常见实践。`@RequestMapping`是Spring MVC框架中用于处理HTTP请求映射的注解,而`RequestAttribute`则用于在请求...

    springmvc之@RequestMapping的demo

    通过这个简单的`springmvc_helloworld`示例,你可以了解`@RequestMapping`注解的基本用法,以及如何在Spring MVC框架下构建一个基本的Web应用。随着对Spring MVC的深入学习,你会发现更多高级特性,如拦截器、异常...

    Springmvc中 RequestMapping 属性用法归纳.docx

    在Spring MVC框架中,`@RequestMapping`注解是核心组件之一,它负责将HTTP请求映射到控制器类的处理方法。这个注解可以应用于类级别和方法级别,以定义请求的URL路径、HTTP方法以及其他的匹配条件。接下来,我们将...

    Java S11pring MVC 学习笔记:@RequestMapping用法详解.docx

    。。Java S11pring MVC 学习笔记:@RequestMapping用法详解.docx

    Java S11pring MVC 学习笔记:@RequestMapping用法详解.pdf

    。。Java S11pring MVC 学习笔记:@RequestMapping用法详解.pdf

    spring MVC 注解

    Spring MVC注解是Spring框架中用于简化Web层配置的关键特性,它们在Spring 2.5版本中引入,目的是减少XML配置文件的使用,提高代码的可读性和维护性。注解的使用使得开发者可以更直观地声明控制器、依赖注入、生命...

    SpringMVCDemo:Spring MVC 框架知识案例

    2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 5.Spring MVC @ModelAttribute 注解案例 6.Spring MVC 国际化案例 7.Spring MVC 请求转发与请求重定向...

    springmvc:@Controller @RequestMapping @RequestParam,模型和ModelAndView Spring MVC实践

    在Spring MVC框架中,`@Controller`、`@RequestMapping`、`@RequestParam`以及`ModelAndView`是四个关键的注解,它们对于构建基于Java的Web应用程序至关重要。下面将详细介绍这些概念及其在实际开发中的应用。 `@...

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...

    02@RequestMapping映射.md

    02@RequestMapping映射.md

    spring mvc 4.0

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...

    Spring MVC之@RequestMapping注解详解

    Spring MVC的@RequestMapping注解是核心的控制器层注解,它用于映射HTTP请求到特定的处理方法。在本文中,我们将深入探讨这个注解的各个方面,包括它的使用场景、属性以及如何结合其他注解实现更复杂的请求处理。 ...

Global site tag (gtag.js) - Google Analytics