AOP概念

liuhaimiao發表於2018-03-30
原理
AOP(Aspect Oriented Programming),也就是面向方面程式設計的技術。AOP基於IoC基礎,是對OOP的有益補充。
  AOP將應用系統分為兩部分,核心業務邏輯(Core business concerns)及橫向的通用邏輯,也就是所謂的方面Crosscutting enterprise concerns,例如,所有大中型應用都要涉及到的持久化管理(Persistent)、(Transaction Management)、安全管理(Security)、日誌管理(Logging)和除錯管理(Debugging)等。
  AOP正在成為軟體開發的下一個光環。使用AOP,你可以將處理aspect的程式碼注入主程式,通常主程式的主要目的並不在於處理這些aspect。AOP可以防止程式碼混亂。
  Spring framework是很有前途的AOP技術。作為一種非侵略性的、輕型的AOP framework,你無需使用預編譯器或其他的元標籤,便可以在Java程式中使用它。這意味著開發團隊裡只需一人要對付AOP framework,其他人還是像往常一樣程式設計。

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框架一樣,在執行時完成織入。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/223653/viewspace-2152436/,如需轉載,請註明出處,否則將追究法律責任。

相關文章