Spring IOC簡(jiǎn)單的理解

AOP意思是:面向切面編程。好處:能夠降低耦合度、提高程序的可重用性、開發(fā)效率。
直白語言解釋:就是調(diào)用一個(gè)方法之前或者之后,自動(dòng)執(zhí)行的一系列自定義語句。

底層原理:使用代理的機(jī)制。

  • 接口 + 實(shí)現(xiàn)類 : 使用jdk動(dòng)態(tài)代理。
  • 只有實(shí)現(xiàn)類 :spring采用cglib字節(jié)碼增強(qiáng),在運(yùn)行時(shí)創(chuàng)建目標(biāo)類的子類,從而對(duì)目標(biāo)類增強(qiáng)。

術(shù)語

  1. target:目標(biāo)類,需要被代理的類,例如:UserService
  2. Joinpoint:連接點(diǎn),可能會(huì)被攔截的方法,例如:UserService里面的所有方法 —>廁所里面的的所有坑
  3. PointCut:切入點(diǎn),已經(jīng)被增強(qiáng)的連接點(diǎn)。例如:addUser() —>被使用的坑
  4. advice:通知/增強(qiáng),增強(qiáng)的代碼、切面的工作被稱為通知。例如after、before
  5. weaving:織入。把增強(qiáng)應(yīng)用到目標(biāo)對(duì)象target來創(chuàng)建新的代理對(duì)象的過程
  6. aspect:切面。切入點(diǎn)(PointCut)和通知(advice)的結(jié)合。一個(gè)切入點(diǎn)和一個(gè)通知,就能組成一個(gè)特殊的面。

主要的應(yīng)用:事務(wù)管理、性能監(jiān)控、安全檢查、緩存、日志。

IOC:控制反轉(zhuǎn),控制權(quán)的轉(zhuǎn)移。把權(quán)限轉(zhuǎn)移給spring的ioc容器管理。(ioc容器用于與其他框架整和)
DI:對(duì)IOC這種思想的操作。容器通過反射給屬性賦值。

簡(jiǎn)單的IOC原理

  1. 加載xml的配置文件,遍歷其中的標(biāo)簽(使用dom4j)
  2. 獲取標(biāo)簽中的 id 和 class 屬性,加載 class 屬性對(duì)應(yīng)的類,并創(chuàng)建 bean
  3. 遍歷標(biāo)簽中的標(biāo)簽,獲取屬性值,并將屬性值填充到 bean 中
  4. 將 bean 注冊(cè)到 bean 容器中
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容