HandlerMapping和HandlerAdapter配置須知
---------------------siwuxie095
HandlerMapping 和 HandlerAdapter 配置須知
在SpringMVC 的核心配置檔案 dispatcher-servlet.xml 中,
HandlerMapping 和 HandlerAdapter 的配置一共有 5 種方
式,具體如下:
方式一:什麼都不配置
SpringMVC 針對這兩者均已有預設配置,詳見 spring-webmvc 的 jar
包中第一個包 org.springframework.web.servlet 中最後一個配置檔案
DispatcherServlet.properties
方式二:僅限XML 方式實現的SpringMVC,配置如下:
BeanNameUrlHandlerMapping和SimpleControllerHandlerAdapter
<!-- 配置 HandlerMapping(可選,即可以省略不配置) --> <beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- 配置 HandlerAdapter(可選,即可以省略不配置) --> <beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> |
方式三:僅限註解方式實現的SpringMVC,配置如下:
DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter
<!-- 配置 HandlerMapping(可選,即可以省略不配置) --> <beanclass="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <!-- 配置 HandlerAdapter(可選,即可以省略不配置) --> <beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> |
「這兩個類都已過期(廢棄),所以不推薦此法」
方式四:僅限註解方式實現的SpringMVC,配置如下:
RequestMappingHandlerMapping和RequestMappingHandlerAdapter
<!-- 配置 HandlerMapping(可選,即可以省略不配置) --> <beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!-- 配置 HandlerAdapter(可選,即可以省略不配置) --> <beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> |
方式五:使用MVC 的註解驅動(此法通用),配置如下:
<!-- 啟用註解驅動 --> <mvc:annotation-driven/> |
原理:詳見 spring-webmvc 的 jar 包中第二個包 org.springframework.web.
servlet.config 中第一個類 AnnotationDrivenBeanDefinitionParser
【made by siwuxie095】