spring MVC 总结

总结

Spring MVC

  • Spring MVC 是 Spring 给我们提供的一个用于简化 Web 表现层开发的框架,是对Servlet的封装
  • 第一部分:Spring MVC应用
    • [理解] 回顾对Spring MVC 的认知
      • 从三层架构&MVC模式引入
      • Spring MVC是什么
        • 本质:Spring MVC 本质是对servlet的封装,简化了我们serlvet的开发
        • 作用:1)接收请求 2)返回响应,跳转页面
    • Spring MVC 工作机制
      • [掌握] Spring MVC 开发过程(编程模型)
        • 1)配置DispatcherServlet前端控制器
        • 2)开发处理具体业务逻辑的Handler(@Controller、@RequestMapping)
        • 3)xml配置文件配置controller扫描,配置springmvc三大件
        • 4)将xml文件路径告诉Spring MVC(DispatcherServlet)
      • [理解] Spring MVC 的请求处理流程
      • [了解] Spring MVC 九大件
        • HandlerMapping(处理器映射器)
        • HandlerAdapter(处理器适配器)
        • HandlerExceptionResolver(处理器异常解析器)
        • ViewResolver(视图解析器)
        • RequestToViewNameTranslator(请求视图名转换器)
        • LocaleResolver(区域化解析器)
        • ThemeResolver(主题解析器)
        • MultipartResolver(多部件解析器)
        • FlashMapManager(闪存管理器)
    • [掌握] Spring MVC 请求参数绑定
      • Servlet API
      • 绑定简单类型参数
      • 绑定Pojo类型参数
      • 绑定Pojo包装对象参数
      • 绑定日期类型参数(需要配置自定义类型转换器,实现Converter接口)
    • [掌握] Spring MVC 对Restful风格请求的支持
      • @PathVariable注解的使用
    • [掌握] Spring MVC 对Ajax Json 的支持
      • @RequestBody
      • @ResponseBody
        • @ResponseBody注解的作用是将Handler方法返回的对象转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据
        • 注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输出流中,他的效果等同于通过response对象输出指定格式的数据
  • 第二部分:Spring MVC 高级技术
    • [掌握]拦截器(Inteceptor)
      • 监听器、过滤器和拦截器对比
      • 拦截器的执行流程
        • 单个拦截器
        • 多个拦截器
      • 自定义拦截器(实现HandlerInterceptor接口)
    • [掌握]处理Multipart形式的数据
      • 注意配置MultipartResolver,id固定为multipartResolver
    • [掌握]异常处理机制
    • [了解]基于Flash属性的跨重定向请求数据传递
  • 第三部分:手写 MVC 框架
    • [理解]思路梳理
    • [掌握]编码部分
  • 第四部分:源码剖析
    • 前端控制器DispatcherServlet的代码结构
    • 重要时机点分析
      • Handler方法的执行时机
      • 页面渲染时机(打断点并观察调用栈)
      • 得出结论
        • SpringMVC处理请求的流程即为org.springframework.web.servlet.DispatcherServlet#doDispatch方法的执行过程
        • 1)调用getHandler()获取到能够处理当前请求的执行链 HandlerExecutionChain(Handler+拦截器)
        • 但是如何去getHandler的?后面进行分析
        • 2)调用getHandlerAdapter();获取能够执行1)中Handler的适配器
        • 但是如何去getHandlerAdapter的?后面进行分析
        • 3)适配器调用Handler执行ha.handle(总会返回一个ModelAndView对象)
        • 4)调用processDispatchResult()方法完成视图渲染跳转
    • 核心步骤剖析
      • 核心步骤getHandler方法剖析
      • 核心步骤getHandlerAdapter方法剖析
      • 核心步骤ha.handle方法剖析
      • 核心步骤processDispatchResult方法剖析
    • SpringMVC九大组件初始化
  • 第五部分:SSM 整合
    • 注意方法策略!!!
    • 整合策略
      • SSM = Spring + SpringMVC + Mybatis = (Spring + Mybatis)+ SpringMVC
      • 先整合 Spring + Mybatis
      • 然后再整合 SpringMVC
    • Mybatis整合Spring整合目标
      • 数据库连接池以及事务管理都交给Spring容器来完成
      • SqlSessionFactory对象应该放到Spring容器中作为单例对象管理
      • Mapper动态代理对象交给Spring管理,我们从Spring容器中直接获得Mapper的代理对象
    • 再整合SpringMVC
      • 思路:在已有工程基础之上开发一个SpringMVC入门案例而已

Spring Data Jpa

  • Spring Data Jpa 是应用于Dao层的一个框架,简化数据库开发的,作用和Mybatis框架一样,但是在使用方式和底层机制是有所不同的。最明显的一个特点,Spring Data Jpa 开发Dao的时候,很多场景我们连sql语句都不需要开发。由Spring出品。
  • 第一部分:Spring Data JPA 介绍回顾
    • 什么是 Spring Data JPA
      • Spring Data JPA 是 Spring 基于JPA 规范的基础上封装的一套 JPA 应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能!学习并使用 Spring Data JPA 可以极大提高开发效率。
      • 说明:Spring Data JPA 极大简化了数据访问层代码。
      • 如何简化呢?使用了Spring Data JPA,我们Dao层中只需要写接口,不需要写实现类,就自动具有了增删改查、分页查询等方法。
      • 使用Spring Data JPA 很多场景下不需要我们自己写sql语句
  • 第二部分:Spring Data JPA、JPA规范和Hibernate之间的关系
  • 第三部分:Spring Data JPA 应用
    • 开发步骤
      • 创建工程导入坐标(Java框架于我们而言就是一堆jar)
      • 配置 Spring 的配置文件(配置指定框架执行的细节)
      • 编写实体类 Resume,使用 JPA 注解配置映射关系
      • 编写一个符合 Spring Data JPA 的 Dao 层接口(ResumeDao接口)
        • public interface ResumeDao extends JpaRepository<Resume,Long>, JpaSpecificationExecutor<Resume>
      • 操作 ResumeDao 接口对象完成 Dao 层开发
    • Dao层应用方式
      • 调用继承的接口中的方法 findOne(),findById()等
      • 可以引入jpql
      • 可以引入原生的sql语句
      • 可以在接口中自定义方法,而且不必引入jpql或者sql语句,这种方式叫做方法命名规则查询,比如:findByNameLikeAndAddress
      • 动态查询Specification
  • 第四部分:Spring Data JPA 执行过程源码分析
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容