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