您好,登錄后才能下訂單哦!
一、什么是AOP
1.AOP的基本概念
AOP將應用系統分為兩個部分:核心業務邏輯以及橫向的通用邏輯。
也就是所謂的方面。
例如,所有大中型應用都要涉及到的持久化的管理、事務管理、安全管理、日志管理以及調試管理等等。
在Spring當中提供了面向切面編程的豐富的支持。允許通過分離應用的業務邏輯與系統級的服務進行內置性的開發。
應用對象指實現他們應該做的,也就是完成業務邏輯,僅此而已。它們并不負責甚至意識到其它的系統級別的關注點。例如日志和事務支持等等。
2.AOP與OOP的關系
在軟件行業當中,AOP是對OOP的面向對象編程的一種有益的補充,同時AOP也是OOP的延續,是軟件開發中的一個熱點,也是spring框架當中一個非常重要的內容。OOP是從靜態角度考慮程序結構,即OOP對業務處理過程中的實體以及屬性和行為進行了抽象的封裝,以獲得更加清晰、高效果的邏輯劃分,研究的是一種靜態的領域。而AOP是從動態角度考慮程序運行過程,即針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟或者階段,研究的是一種動態的領域。
3.AOP的主要功能
它主要是用于系統級別的功能,例如日志記錄、性能統計、安全控制、事務處理、異常處理等等這些主要功能。
4.AOP的主要意圖
它主要是將日志記錄、性能統計、安全控制、事務處理、異常處理等代碼從業務邏輯代碼中劃分出來。通過對這些行為的分離,我們希望可以將他們獨立到非指導性業務邏輯方法當中,進而改變這一行為的時候不影響業務邏輯代碼的處理。也就是說AOP把一些常用的服務進行模塊化,并且用聲明的方式將這些組件使用到其它的業務組件當中去。這樣做的結果就是每一個業務組件只需要關心自己的業務邏輯,而不用去了解一些常用的服務組件,這樣就保證了更高的內聚性。
二、AOP的存在價值
AOP專門用于處理系統中分布于各個模塊中的交叉關注點的問題,在Java EE應用中,常常通過AOP來處理一些具有橫切性質的系統級服務,如事務管理、安全檢查、緩存、對象池管理等,AOP已經成為一種非常常用的解決方案。
三、AOP的原理剖析
AOP代理其實是由AOP框架動態生成的一個對象,該對象可作為目標對象使用。
定義普通業務組件
定義切入點
定義增強處理
代理對象的方法=增強處理+被代理對象的方法
四、AOP的關鍵概念
切面 - Aspect
連接點 - Join Point
通知 - Advice
切入點 - Point Cut
引入 - Introduction
目標對象 - Target Object
AOP代理 - AOP Proxy
織入 - Weaving
五、AOP的通俗理解
一個組件A,不關心其他常用的組件B,但是這個組件A使用組件B的時候,不是組件A自身去調用,而是通過配置等其他方式,比如Spring中可以通過xml配置文件。這樣就使得A壓根就不需要知道服務組件B是怎樣的,愛存在不存在,愛怎么存在都與A無關。A只關心自己的業務邏輯,具體A使用B的時候,配置文件去做,與具體的A組件無關。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。