1 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
IOC控制反轉(zhuǎn)/DI依賴注入
控制反轉(zhuǎn)就是應(yīng)用本身(Action)不負(fù)責(zé)依賴對象(Dao)的創(chuàng)建及維護(hù),依賴對象的創(chuàng)建及
維護(hù)是由外部容器(BeanFactory)負(fù)責(zé)的。這樣控制權(quán)就由應(yīng)用轉(zhuǎn)移到了外部容器,控制
權(quán)的轉(zhuǎn)移就是所謂反轉(zhuǎn)。
依賴注入就是指:在運(yùn)行期,由外部容器(BeanFactory)動(dòng)態(tài)地將依賴對象(Dao)注入到
組件(Action)中。
1)依賴注入的方式
DI(Dependency injection 依賴注入)是IoC實(shí)現(xiàn)的重要技術(shù),有如下2種方式:
a,setter方式注入
b,構(gòu)造方式注入
2)IoC和DI的關(guān)系
IoC全稱Inverse of Control(反向控制或控制反轉(zhuǎn))
Spring是具有IoC特性的框架。
實(shí)現(xiàn)IoC是由Spring容器來完成的,Spring容器通過DI建立起對象(組件、Bean)之
間的關(guān)系。
可以這樣理解:DI是IoC實(shí)現(xiàn)的一種手段,IoC的理論通過DI來實(shí)現(xiàn)。
DI用來管理對象(組件、Bean),不用你自己一個(gè)個(gè)new
AOP中的一些概念
a,切面(aspect):跟類很相似,切面就是通知(Advice)的集合
b,目標(biāo)對象:要使用Advice操作的方法(異常)的對象
c,連接點(diǎn)(Joinpoint):被攔截到的點(diǎn),點(diǎn)指的是調(diào)用某方法或處理某異常
d,切入點(diǎn)(PointCut):匹配一系列連接點(diǎn)的集合的斷言(表達(dá)式),是一個(gè)表達(dá)式,
指明處理方法(Advice)將在何時(shí)觸發(fā)。
e,通知(Advice):攔截到JoinPoint之后要做的事(比如logger())
f,前置通知(Before Advice):在某連接點(diǎn)之前的通知(連接點(diǎn)方法執(zhí)行之前,做的事)
g,后置通知(After returning Advice):某連接點(diǎn)正常完成以后執(zhí)行的通知
h,最終通知(after finally Advice):最后執(zhí)行的操作
AOP用來做日志、聲明式事物管理等另外:
Aop的實(shí)現(xiàn)
1)目標(biāo)對象如果實(shí)現(xiàn)接口:
spring會在底層使用jdk動(dòng)態(tài)代理,spring以jdk動(dòng)態(tài)代理為主(jdk實(shí)現(xiàn)的)
2)目標(biāo)對象如果沒有實(shí)現(xiàn)任何接口
spring需要依賴第3方
cglib-nodep-2.1_3.jar來實(shí)現(xiàn),使用的是cglib動(dòng)態(tài)代理
- 1 回答
- 0 關(guān)注
- 1364 瀏覽
添加回答
舉報(bào)