21-mvc 体系结构源码详解

专栏目录

  1. 1-Spring架构源码分析-Spring源码搭建
  2. 2-Spring架构源码分析-SSM框架说明
  3. 3-Spring架构源码分析-spring体系
  4. 4-Spring架构源码分析-Spring IOC机制设计思想和源码解读
  5. 5-Spring架构源码分析-Spring IOC之 Spring 统一资源加载策略
  6. 6-Spring架构源码分析-IoC 之加载 BeanDefinition
  7. 7-Spring架构源码分析-IoC 之注册 BeanDefinitions
  8. 8-Spring架构源码分析-IoC 之解析Bean:解析 import 标签
  9. 9-Spring架构源码分析-IoC 之解析 bean 标签:开启解析进程
  10. 10-Spring架构源码分析-IoC 之解析 bean标签:BeanDefinition
  11. 11-Spring架构源码分析-IoC 之注册解析的 BeanDefinitions
  12. 12-Spring架构源码分析-IoC 之装载 BeanDefinitions 总结
  13. 13-Spring架构源码分析-IoC 之开启 Bean 的加载
  14. 14-Spring架构源码分析-IoC 之加载 Bean:总结
  15. 15-Spring架构源码分析-Spring代理与AOP
  16. 16-Spring AOP源码分析-@EnableAspectJAutoProxy和AspectJAutoProxyRegistrar
  17. 17-Spring AOP源码分析-AnnotationAwareAspectJAutoProxyCreator
  18. 18-Spring AOP源码分析-AOP与BeanPostProcessor处理器
  19. 19-Spring AOP源码分析-代理对象调用目标方法
  20. 20-spring mvc设计思想和源码解读-spring mvc 功能特性
  21. 21-mvc 体系结构源码详解
  22. 22-Spring MVC源码跟踪
  23. 23-Spring事务源码分析

mvc 体系结构详解

spring mvc 框架解决的问题

从技术角度去思考 任何一个现存的框架都有其存在理由,而这个理由就是解决实际的问题。或者提供更好的解决问题的方案。spring mvc 它解决了什么问题呢?

  1. URL映射
  2. 表单参数映射
  3. 调用目标Control
  4. 数据模型映射
  5. 视图解析
  6. 异常处理

上术解决在spring mvc 中都体现在如下组件当中

  • **HandlerMapping **'hændlə 'mæpɪŋ
    • url与控制器的映射
  • HandlerAdapter 'hændlə ə’dæptə
    • 控制器执行适配器
  • **ViewResolver **vjuː riː’zɒlvə
    • 视图仓库
  • view
    • 具体解析视图
  • **HandlerExceptionResolver **'hændlə ɪk’sepʃ(ə)n riː’zɒlvə
    • 异常捕捕捉器
  • HandlerInterceptor 'hændlə ɪntə’septə
    • 拦截器
      在这里插入图片描述

mvc 各组件执行流程
在这里插入图片描述

HandlerMapping 详解

其为mvc 中url路径与Control对像的映射,DispatcherServlet 就是基于此组件来寻找对应的Control,如果找不到就会报 No mapping found for HTTP request with URI的异常。

HandlerMapping 接口结构分析:
在这里插入图片描述

HandlerMapping 作用是通过url找到对应的Handler ,但其HandlerMapping.getHandler()方法并不会直接返回Handler 对象,而是返回 HandlerExecutionChain 对象在通过 HandlerExecutionChain.getHandler() 返回最终的handler

在这里插入图片描述

常用实现类:
在这里插入图片描述

目前主流的三种mapping 如下:

  1. SimpleUrlHandlerMapping:基于手动配置 url 与control 映射
  2. BeanNameUrlHandlerMapping: 基于ioc name 中已 “/” 开头的Bean时行 注册至映射.
  3. RequestMappingHandlerMapping:基于@RequestMapping注解配置对应映射

SimpleUrlHandlerMapping
演示基于 SimpleUrlHandlerMapping配置映射。
编写mvc 文件

	<!--需要放在前面<mvc:default-servlet-handler/>,不然不起作用-->
	<!--SimpleUrlHandlerMapping只支持实现了Controller接口的bean,且还需要在其属性里进行url路径==>bean的映射,不支持@RequestMapping注解-->
	<bean id="urlMappingController" class="com.naixue.web.UrlMappingController"/>
	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xianghan收藏册

极简精品作,一分也是一份鼓励哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值