首页 > 代码库 > Spring MVC 详解(二)

Spring MVC 详解(二)

前端控制器

web.xml中配置:

技术分享

springmvc.xml中配置springmvc架构三大组件(处理器映射器、适配器、视图解析器)

技术分享

处理器映射器

springmvc.xml中配置:

BeanNameUrlHandlerMapping: 根据请求urlXXXX.action)匹配spring容器bean的 name

找到对应的bean(程序编写的Handler

 

<!-- 根据beanname进行查找Handler actionurl配置在beanname中 -->

 

<bean

 

class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

 

所有处理器映射器都实现HandlerMapping接口。

处理器适配器

springmvc.xml配置:

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 

所有的适配器都是实现了HandlerAdapter接口。

程序编写Handler根据适配器的要求编写。

SimpleControllerHandlerAdapter适配器要求:

通过supports方法知道Handler必须要实现哪个接口:

 

 Handler编写

需要实现Controller接口:

技术分享

技术分享

 配置Handler

 

springmvc.xml配置Handlerspring管理Handler

技术分享

 

 配置视图解析器

 

配置视图解析,能够解析jsp视图:

 

 

 技术分享

注解映射器和适配器

注解映射器

spring3.1之前默认加载映射器是

org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,

3.1之后要使用:

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

 

springmvc.xml中配置RequestMappingHandlerMapping:

 

使用RequestMappingHandlerMapping需要在Handler 中使用@controller标识此类是一个控制器,使用@requestMapping指定Handler方法所对应的url

 注解适配器

spring3.1之前默认加载映射器是

org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter,

3.1之后要使用:

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

RequestMappingHandlerAdapter,不要求Handler实现任何接口,它需要和RequestMappingHandlerMapping注解映射器配对使用,主要解析Handler方法中的形参。

 

注解开发Hanlder

技术分享

 

配置Handler

技术分享

建议使用组件扫描,组件扫描可以扫描@Controller@Service@component@Repsitory

小结

DispatcherServlet:前端控制器,相当于中央调度器,可以降低组件之间的耦合度。

HandlerMapping:处理器映射器,负责根据url查找Handler

HandlerAdapter:处理器适配器,负责根据适配器要求的规则去执行处理器。可以通过扩展适配器支持不同类型的Handler

viewResolver:视图解析器,根据逻辑视图名解析成真正的视图,

技术分享

真正视图地址==前缀+逻辑视图名+后缀

 

Spring MVC 详解(二)