首页 > 代码库 > Spring MVC 详解(二)
Spring MVC 详解(二)
前端控制器
在web.xml中配置:
在springmvc.xml中配置springmvc架构三大组件(处理器映射器、适配器、视图解析器)
处理器映射器
在springmvc.xml中配置:
BeanNameUrlHandlerMapping: 根据请求url(XXXX.action)匹配spring容器bean的 name
找到对应的bean(程序编写的Handler)
<!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->
<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配置Handler由spring管理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 详解(二)