国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-08 01:55:48
字體:
來源:轉載
供稿:網友

AOP為aspect Oriented PRogramming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。

  AOP與OOP是面向不同領域的兩種設計思想。

  OOP(面向對象編程)針對業務處理過程的實體及其屬性行為進行抽象封裝,以獲得更加清晰高效的邏輯單元劃分。

  AOP則是針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果

  我們可以單單從上面的字面上來理解AOP和OOP的話,用下面的理解也不為過:

  OOP實際上是對對象的屬性和行為的封裝,而AOP對于這點就無從談起,但是AOP是處理某個步驟和階段的,從中進行切面的提取,也就是說,如果幾個或更多個邏輯過程中,有重復的操作行為,AOP就可以提取出來,運用動態代理,實現程序功能的統一維護,這么說來可能太含蓄,如果說到權限判斷,日志記錄等,可能就明白了。如果我們單純使用OOP,那么權限判斷怎么辦?在每個操作前都加入權限判斷?日志記錄怎么辦?在每個方法里的開始、結束、異常的地方手動添加日志?所有,如果使用AOP就可以借助代理完成這些重復的操作,就能夠在邏輯過程中,降低各部分之間的耦合了。二者揚長補短,互相結合最好。

  下面詳細了解一些AOP的概念:

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

  Spring 中 AOP 代理由 Spring 的 IoC 容器負責生成、管理,其依賴關系也由 IoC 容器負責管理。至于Spring的AOP在項目中具體是怎么實現的,下篇博客會以日志記錄為例進行學習。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹阳市| 泰兴市| 北京市| 宝鸡市| 奇台县| 丰镇市| 崇左市| 军事| 长岛县| 皮山县| 古丈县| 盐源县| 宾阳县| 台前县| 安塞县| 玉龙| 吴桥县| 渭南市| 右玉县| 婺源县| 历史| 威远县| 方城县| 玉林市| 淮安市| 龙南县| 栾城县| 沂源县| 阿克陶县| 那坡县| 玉环县| 平罗县| 公主岭市| 濉溪县| 离岛区| 霸州市| 郸城县| 信阳市| 泰州市| 兴和县| 辰溪县|