知識(shí)回顧
第一部分:Spring概述(知道)
- Spring簡(jiǎn)介
- Spring是以IOC和AOP為內(nèi)核的full-stack輕量級(jí)開(kāi)源框架
- Spring發(fā)展歷程
- Spring優(yōu)勢(shì)
- 解耦
- Aop編程支持
- 聲明式事務(wù)
- 對(duì)測(cè)試的支持
- 方便集成各種優(yōu)秀框架
- 對(duì)JavaEE API的封裝
- 優(yōu)秀的源碼
- Spring核心結(jié)構(gòu)
- 模塊化思想的體現(xiàn)
- Spring框架版本
- 課程使用 5.1.12
第二部分:核心思想(理解)
- IOC 控制反轉(zhuǎn)
- 什么是IoC
- 創(chuàng)建對(duì)象的權(quán)利反轉(zhuǎn)給框架,不需要我們自己new對(duì)象了,我們喪失了創(chuàng)建對(duì)象的權(quán)利,但是也得到了福利,不需要我們來(lái)管理對(duì)象了
- IoC解決什么問(wèn)題
- 解決對(duì)象之間耦合問(wèn)題
- IOC和DI的區(qū)別
- 同一件事情不同角度的描述
- 什么是IoC
- AOP 面向切面編程
- 橫切邏輯:多個(gè)縱向流程中出現(xiàn)的重復(fù)子流程邏輯
- 本質(zhì)
- 在不改變?cè)袠I(yè)務(wù)邏輯代碼的情況下,增強(qiáng)橫切邏輯,避免橫切邏輯代碼重復(fù)
- 為什么叫面向切面編程
- 切:橫切邏輯,原有業(yè)務(wù)邏輯不能動(dòng)
- 面:橫切代碼影響的往往是很多方法,構(gòu)成了一個(gè)面
第三部分:手寫(xiě)實(shí)現(xiàn)IOC和AOP(掌握)
- 分析案例,找出問(wèn)題
- 針對(duì)問(wèn)題提出解決方案
- 針對(duì)問(wèn)題一
- 針對(duì)問(wèn)題二
- 按照解決方案完成編碼
- 1、ConnectionUtils提供了一個(gè)獲取當(dāng)前線程綁定Connection的方法
- 2、Service層事務(wù)管理邏輯代碼單獨(dú)提取為了事務(wù)管理器類TransactionManager(事務(wù)的開(kāi)啟、提交、回滾)
- 3、我們不可能給每一個(gè)方法添加TCF代碼塊來(lái)控制事務(wù),所以使用動(dòng)態(tài)代理技術(shù),開(kāi)發(fā)ProxyFactory
第四部分:SpringIOC的應(yīng)用(掌握)
- 說(shuō)明
- Bean定義方式不同、JavaSE/JavaEE環(huán)境不同,導(dǎo)致容器啟動(dòng)方式也會(huì)不同
- BeanFactory和ApplicationContext的區(qū)別
- Spring中IOC容器的頂級(jí)接口,定義基礎(chǔ)規(guī)范;
- ApplicationContext是容器的高級(jí)接口,比BeanFactory擁有更多的功能(比如XML讀?。?/li>
- IOC三種模式
- 模式一:純XML模式
- 創(chuàng)建Bean的三種方式
- class指定全限定類名,通過(guò)無(wú)參構(gòu)造器創(chuàng)建
- 靜態(tài)方法創(chuàng)建
- 實(shí)例化方法創(chuàng)建
- Bean標(biāo)簽屬性
- id
- class
- scope
- singleton
- prototype
- 生命周期屬性
- init-method
- destory-method
- name
- factory-bean
- factory-method
- DI依賴注入
- 構(gòu)造器注入
- 使用<constructor-arg>標(biāo)簽
- set注入
- 使用<property>標(biāo)簽,ref屬性用于注入其它bean,value屬性用于注入普通數(shù)值
- 構(gòu)造器注入
- 創(chuàng)建Bean的三種方式
- 模式二:XML+注解模式
- 模式三:純注解模式
- 原則:從xml開(kāi)始,學(xué)習(xí)注解時(shí)將xml中標(biāo)簽、屬性與注解一一對(duì)應(yīng)即可
- 模式一:純XML模式
- IOC高級(jí)特性
- lazy-init(了解)
- FactoryBean和BeanFactory(重點(diǎn))
- FactoryBean是一個(gè)Bean,用于創(chuàng)建其他對(duì)象
- 后置處理器(重點(diǎn))
- BeanPostProcessor,Bean對(duì)象后置處理器
- BeanFactoryPostProcessor,Bean工廠后置處理器
- BeanFactory初始化之后可以使用這個(gè)后置處理器做一些事情
- 其他
- SpringBean生命周期
- new的對(duì)象并不是一個(gè)Spring Bean對(duì)象
- BeanDefinition對(duì)象
- SpringBean生命周期
第五部分:Spring IOC源碼深度剖析
- 源碼剖析技巧
- 流程分析
第六部分:SpringAOP應(yīng)用(掌握)
- AOP相關(guān)術(shù)語(yǔ)
- 連接點(diǎn)JoinPoint
- 每個(gè)個(gè)方法的特殊時(shí)機(jī)點(diǎn)都是連接點(diǎn),是一種候選點(diǎn)
- 切入點(diǎn)PointCut
- 用于定位真正感興趣的方法
- 增強(qiáng)Advice
- 橫切邏輯+方位信息(具體哪種連接點(diǎn))
- 目標(biāo)對(duì)象Target
- 代理對(duì)象Proxy
- 織入Weaving
- 切面Aspect
- 切面=切入點(diǎn)+增強(qiáng)=切入點(diǎn)+橫切邏輯+方位信息
- 注意:這么多的概念,目的就是為了鎖定在哪個(gè)地方插入什么橫切邏輯代碼
- 連接點(diǎn)JoinPoint
- Spring AOP配置
- XML配置
- XML+注解
- 純注解
- Spring 聲明式事務(wù)
- 回顧事務(wù)基本知識(shí)
- 四大特性、并發(fā)問(wèn)題、隔離級(jí)別、傳播行為
- 配置方式
- xml配置
- xml+注解
- 純注解
- 回顧事務(wù)基本知識(shí)
第七部分:Spring AOP源碼剖析
- 代理對(duì)象創(chuàng)建流程
- 聲明式事務(wù)控制組件分析--->從@EnableTransactionManagement開(kāi)始