New Support Classes for @RequestMapping methods in Spring MVC 3.1

Spring 3.1 介绍了支持@RequestMapping注解的类和方法,例如:RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter。在Spring MVC 3.1 之后这两个类就被介绍优先使用。新支持的class默认使用了MVC的命名空间,如果你要使用它们的话,你必须要进行配置。

在Spring 3.1之前,类型和方法级别的映射是在两个分开的步骤中检查的,一个控制器首先被DefaultAnnotationHandlerMapping选择到,实际的方法调用是在AnnotationMethodHandlerAdapter。

在spring 3.1中,RequestMappingHandlerMapping 就已经决定了哪些方法需要被调用,思考一下控制器的方法,每一个方法都包含了@RequestMapping信息。

它也增加了一些新的功能。对于HandlerInterceptor和HandlerExceptionResolver可以预期到去处理的方法,那么它就会允许去检查方法,例如参数和注解等,处理的URL不再需要分隔在不同的处理器中。

下面的一些事情不再成为可能:

1. 首先选择一个控制器为SimpleUrlHandlerMapping或者BeanNameUrlHandlerMapping,然后再方法上加@RequestMapping注解。

2. 依靠方法的名字来作为备用机制去区分两个不同的基于@RequestMapping的注解的方法而不是根据URL,在新的@RequestMapping已经提供了URL精确匹配。

3. 如果控制器没有找到合适的方法,那么将有一个默认的方法会执行,然而在新的支持类中,如果没有一个方法匹配,那么会抛出404的错误代码。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章