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的錯誤代碼。




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