spring 总结

知识回顾

第一部分:Spring概述(知道)

  • Spring简介
    • Spring是以IOC和AOP为内核的full-stack轻量级开源框架
  • Spring发展历程
  • Spring优势
    • 解耦
    • Aop编程支持
    • 声明式事务
    • 对测试的支持
    • 方便集成各种优秀框架
    • 对JavaEE API的封装
    • 优秀的源码
  • Spring核心结构
    • 模块化思想的体现
  • Spring框架版本
    • 课程使用 5.1.12

第二部分:核心思想(理解)

  • IOC 控制反转
    • 什么是IoC
      • 创建对象的权利反转给框架,不需要我们自己new对象了,我们丧失了创建对象的权利,但是也得到了福利,不需要我们来管理对象了
    • IoC解决什么问题
      • 解决对象之间耦合问题
    • IOC和DI的区别
      • 同一件事情不同角度的描述
  • AOP 面向切面编程
    • 横切逻辑:多个纵向流程中出现的重复子流程逻辑
    • 本质
      • 在不改变原有业务逻辑代码的情况下,增强横切逻辑,避免横切逻辑代码重复
    • 为什么叫面向切面编程
      • 切:横切逻辑,原有业务逻辑不能动
      • 面:横切代码影响的往往是很多方法,构成了一个面

第三部分:手写实现IOC和AOP(掌握)

  • 分析案例,找出问题
  • 针对问题提出解决方案
    • 针对问题一
    • 针对问题二
  • 按照解决方案完成编码
    • 1、ConnectionUtils提供了一个获取当前线程绑定Connection的方法
    • 2、Service层事务管理逻辑代码单独提取为了事务管理器类TransactionManager(事务的开启、提交、回滚)
    • 3、我们不可能给每一个方法添加TCF代码块来控制事务,所以使用动态代理技术,开发ProxyFactory

第四部分:SpringIOC的应用(掌握)

  • 说明
    • Bean定义方式不同、JavaSE/JavaEE环境不同,导致容器启动方式也会不同
  • BeanFactory和ApplicationContext的区别
    • Spring中IOC容器的顶级接口,定义基础规范;
    • ApplicationContext是容器的高级接口,比BeanFactory拥有更多的功能(比如XML读取)
  • IOC三种模式
    • 模式一:纯XML模式
      • 创建Bean的三种方式
        • class指定全限定类名,通过无参构造器创建
        • 静态方法创建
        • 实例化方法创建
      • Bean标签属性
        • id
        • class
        • scope
          • singleton
          • prototype
        • 生命周期属性
          • init-method
          • destory-method
        • name
        • factory-bean
        • factory-method
      • DI依赖注入
        • 构造器注入
          • 使用<constructor-arg>标签
        • set注入
          • 使用<property>标签,ref属性用于注入其它bean,value属性用于注入普通数值
    • 模式二:XML+注解模式
    • 模式三:纯注解模式
    • 原则:从xml开始,学习注解时将xml中标签、属性与注解一一对应即可
  • IOC高级特性
    • lazy-init(了解)
    • FactoryBean和BeanFactory(重点)
      • FactoryBean是一个Bean,用于创建其他对象
    • 后置处理器(重点)
      • BeanPostProcessor,Bean对象后置处理器
      • BeanFactoryPostProcessor,Bean工厂后置处理器
        • BeanFactory初始化之后可以使用这个后置处理器做一些事情
      • 其他
        • SpringBean生命周期
          • new的对象并不是一个Spring Bean对象
        • BeanDefinition对象

第五部分:Spring IOC源码深度剖析

  • 源码剖析技巧
  • 流程分析

第六部分:SpringAOP应用(掌握)

  • AOP相关术语
    • 连接点JoinPoint
      • 每个个方法的特殊时机点都是连接点,是一种候选点
    • 切入点PointCut
      • 用于定位真正感兴趣的方法
    • 增强Advice
      • 横切逻辑+方位信息(具体哪种连接点)
    • 目标对象Target
    • 代理对象Proxy
    • 织入Weaving
    • 切面Aspect
      • 切面=切入点+增强=切入点+横切逻辑+方位信息
    • 注意:这么多的概念,目的就是为了锁定在哪个地方插入什么横切逻辑代码
  • Spring AOP配置
    • XML配置
    • XML+注解
    • 纯注解
  • Spring 声明式事务
    • 回顾事务基本知识
      • 四大特性、并发问题、隔离级别、传播行为
    • 配置方式
      • xml配置
      • xml+注解
      • 纯注解

第七部分:Spring AOP源码剖析

  • 代理对象创建流程
  • 声明式事务控制组件分析--->从@EnableTransactionManagement开始
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容

  • I. 简介 Spring是什么Spring是一个开源免费的轻量级且非侵入式的框架(容器),其通过注入Bean的方式...
    YYsoul阅读 226评论 0 0
  • 1、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套...
    月哥说了算阅读 357评论 0 0
  • Spring的概念 Spring是个java企业级应用的开源开发框架,旨在降低应用程序开发的复杂度。是一个轻量级,...
    coder_girl阅读 155评论 0 1
  • spring总结 1、什么是Spring框架,Spring框架主要包含哪些模块 Spring是一个开源框架,Spr...
    沐子不爱敲代码阅读 411评论 0 0
  • Spring框架的好处 轻量:基本的版本大约是2M IOC(控制反转):Spring通过控制反转实现了松散耦合,对...
    whupenger阅读 263评论 0 0