一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

簡(jiǎn)單理解AOP(面向切面編程)

 IT_易風(fēng) 2016-03-10

  AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過(guò)預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。

  AOP與OOP是面向不同領(lǐng)域的兩種設(shè)計(jì)思想。

  OOP(面向?qū)ο缶幊蹋┽槍?duì)業(yè)務(wù)處理過(guò)程的實(shí)體及其屬性行為進(jìn)行抽象封裝,以獲得更加清晰高效的邏輯單元?jiǎng)澐帧?/span>

  AOP則是針對(duì)業(yè)務(wù)處理過(guò)程中的切面進(jìn)行提取,它所面對(duì)的是處理過(guò)程中的某個(gè)步驟階段,以獲得邏輯過(guò)程中各部分之間低耦合性的隔離效果。

  我們可以單單從上面的字面上來(lái)理解AOP和OOP的話,用下面的理解也不為過(guò):

  OOP實(shí)際上是對(duì)對(duì)象的屬性和行為的封裝,而AOP對(duì)于這點(diǎn)就無(wú)從談起,但是AOP是處理某個(gè)步驟和階段的,從中進(jìn)行切面的提取,也就是說(shuō),如果幾個(gè)或更多個(gè)邏輯過(guò)程中,有重復(fù)的操作行為,AOP就可以提取出來(lái),運(yùn)用動(dòng)態(tài)代理,實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù),這么說(shuō)來(lái)可能太含蓄,如果說(shuō)到權(quán)限判斷,日志記錄等,可能就明白了。如果我們單純使用OOP,那么權(quán)限判斷怎么辦?在每個(gè)操作前都加入權(quán)限判斷?日志記錄怎么辦?在每個(gè)方法里的開(kāi)始、結(jié)束、異常的地方手動(dòng)添加日志?所有,如果使用AOP就可以借助代理完成這些重復(fù)的操作,就能夠在邏輯過(guò)程中,降低各部分之間的耦合了。二者揚(yáng)長(zhǎng)補(bǔ)短,互相結(jié)合最好。

  下面詳細(xì)了解一些AOP的概念:

  • 方面(Aspect):一個(gè)關(guān)注點(diǎn)的模塊化,這個(gè)關(guān)注點(diǎn)實(shí)現(xiàn)可能另外橫切多個(gè)對(duì)象。事務(wù)管理是J2EE應(yīng)用中一個(gè)很好的橫切關(guān)注點(diǎn)例子。方面用Spring的Advisor或攔截器實(shí)現(xiàn)。
  • 連接點(diǎn)(Joinpoint):程序執(zhí)行過(guò)程中明確的點(diǎn),如方法的調(diào)用或特定的異常被拋出。
  • 通知(Advice):在特定的連接點(diǎn),AOP框架執(zhí)行的動(dòng)作。各種類型的通知包括“around”、“before”和“throws”通知。通知類型將在下面討論。許多AOP框架包括Spring都是以攔截器做通知模型,維護(hù)一個(gè)“圍繞”連接點(diǎn)的攔截器鏈。
  • 切入點(diǎn)(Pointcut):指定一個(gè)通知將被引發(fā)的一系列連接點(diǎn)的集合。AOP框架必須允許開(kāi)發(fā)者指定切入點(diǎn),例如,使用正則表達(dá)式。
  • 引入(Introduction):添加方法或字段到被通知的類。Spring允許引入新的接口到任何被通知的對(duì)象。例如,你可以使用一個(gè)引入使任何對(duì)象實(shí)現(xiàn)IsModified接口,來(lái)簡(jiǎn)化緩存。
  • 目標(biāo)對(duì)象(Target Object):包含連接點(diǎn)的對(duì)象,也被稱作被通知或被代理對(duì)象。
  • AOP代理(AOP Proxy):AOP框架創(chuàng)建的對(duì)象,包含通知。在Spring中,AOP代理可以是JDK動(dòng)態(tài)代理或CGLIB代理。
  • 編織(Weaving):組裝方面來(lái)創(chuàng)建一個(gè)被通知對(duì)象。這可以在編譯時(shí)完成(例如使用AspectJ編譯器),也可以在運(yùn)行時(shí)完成。Spring和其他純Java AOP框架一樣,在運(yùn)行時(shí)完成織入。

  Spring 中 AOP 代理由 Spring 的 IoC 容器負(fù)責(zé)生成、管理,其依賴關(guān)系也由 IoC 容器負(fù)責(zé)管理。至于Spring的AOP在項(xiàng)目中具體是怎么實(shí)現(xiàn)的,下篇博客會(huì)以日志記錄為例進(jìn)行學(xué)習(xí)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    91播色在线免费播放| 国产一级内射麻豆91| 精品香蕉一区二区在线| 中文字幕欧美精品人妻一区| 大香蕉再在线大香蕉再在线| 不卡免费成人日韩精品| 美国黑人一级黄色大片| 中文字幕熟女人妻视频| 国产精品午夜视频免费观看| 国产不卡视频一区在线| 91麻豆视频国产一区二区| 激情三级在线观看视频| 欧美国产极品一区二区| 欧美国产极品一区二区| 欧美日韩一区二区三区色拉拉| 男女午夜视频在线观看免费| 日韩中文字幕视频在线高清版| 91香蕉视频精品在线看| 东京热加勒比一区二区| 日本加勒比中文在线观看| 嫩草国产福利视频一区二区| 精品视频一区二区三区不卡| 日韩精品一区二区三区含羞含羞草| 国产精品欧美一区两区| 午夜精品一区二区av| 深夜日本福利在线观看| 日韩在线一区中文字幕| 色婷婷视频国产一区视频| 亚洲高清一区二区高清| 亚洲中文在线观看小视频| 老司机精品线观看86| 色婷婷在线精品国自产拍| 午夜传媒视频免费在线观看| 欧美日韩亚洲国产精品| 国产又粗又爽又猛又黄的| 亚洲一区二区三区一区| 亚洲免费黄色高清在线观看| 亚洲一区二区精品福利| 欧美日韩亚洲国产综合网| 97人妻精品一区二区三区免| 国产精品一区二区三区欧美|