Spring MVC 介绍

简介

特点

  • 简介的web开发
  • 支持Restful风格、支持静态资源、本地解析
  • 灵活的url映射关系
  • 跟 spring ioc 完好集成
  • 对其他视图freemark、jsp、Velocity集成 spring mvc 本质上是进行了封装简化了开发流程。易用性,程序结构更清晰
  1. 基于注解的url映射
  2. http表单擦书转换
  3. 全局统一异常处理
  4. 拦截器实现
  5. 多视图控制器

Spring MVC的使用

Spring MVC的高级使用

1. 方法多mapping的设置 
   @RequestMapping(value = {"/value1","/value2"})    
   //使用这个两个 路径都可以访问
   @RequestMapping(value = {"/value1","/value2"}, produces = MediaType.APPLICATION_JSON)          //productes 可以指定请求的返回格式。
   method = RequestMethod.GET   //表示请求的方法 
2. 传参的使用:
   @RequestMapping(value = "/test/{userId}")
   public String hello(@PathVariable Integer userId){  return null;}  
   //将请求的参数映射到方法参数里
3. Mapping相關的注解
   @RequestMapping(method=RequestMethod.GET)  <=>  @GetMapping("/XXX")
   @RequestMapping(method=RequestMethod.POST) <=> @PostMapping("/XXX")
   GetMapping 和 PostMapping 等等 是spring 4.3新引入的注解,相当于注解的组合。

Spring MVC 的过程

Spring MVC代码分析

关键方法: DispartchServlet = > doDispartch();

  • 模拟spring MVC

spring 源码解析

servlet解释

详解

  1. dispatchServlet 默认配置

  2. viewResolver 默认

  3. request的流程

配置与应用

Spring mvc上下问初始化过程

M V C 上 下 文 即 x mlW e b A p pli c a ti o n C o n t e x t , 依 托 Di s p a t c h S e r vle t 的 和 c o n t e x t C o n fig L o c a tio n 进 行 创 建 和 初 始 化, 最 后 对 m v c 进 策 略 初 始 化 。 1、创建DispatchServlet 2、initServletBean 3、createWebApplicationContext 3.1、createBeanFactory 3.2、loadBeanDefinitions (contextConfigLocation) 3.3、registerBeanDefinition IOC 加载完比 4、initStrategies (初始化mvc 环境) 4.1、initHandlerMappings (初始化 映谢配置) 4.2、initHandlerAdapters(初始化适配器) 4.3、initHandlerExceptionResolvers 4.4、initViewResolvers 日

日常配置与使用

HandlerMapping 的类实现结构

HandlerAdapter 实现类结构图

ViewResolver 实现类图

BeanNameViewResolver: InternalResourceViewResolver: FreeMarkerViewResolver

spring mvc 使用了哪些handleMaping 与handleAdapter ? 2、简化的配置如何映谢的,如何调用的?

解决过程: 调试initStrategies 方法, 查看已初始化的 Maping 与Adapter 认识 <mvc:annotation-driven /> 原理 认识 NamespaceHandler 接口 查看 MvcNamespaceHandler 查看AnnotationDrivenBeanDefinitionParser 结论: 在 < m v c:a n n o t a tio n - d riv e n / > 对 应 的 解 析 器 , 自 动 向io c 里 面 注 册 了 两 个 B e a n D e finitio n 。 分 别 是 : R e q u e s t M a p pin g H a n dle r M a p pin g 与 B e a n N a m e U rlH a n dle r M a p pin g

RequestMapping 实现原理

//fixme

转载于:https://my.oschina.net/u/3945595/blog/3073108

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值