Spring AOP面向切面編程(42)

來源:互聯網
上載者:User

AOP全稱是aspect-oriented programming  是面向切面編程的核心思想
AOP是OOP即物件導向的程式設計語言,不相互衝突,他們是相輔相成的設計模型
Spring容器並不依賴於AOP,目標不是提供最晚買的AOP實現,側重於提供AOP實現與SpringiOC的緊密整合,以解決常見問題

AOP術語介紹
Cross-cutting concern:系統層面上的服務穿插到商務邏輯的處理流程之中
Aspect(切面):將商務邏輯代碼中的cross..整合到一起設計成獨立可重用的對象當需要時,將其放到應用程式之上,不需要時,將其從應用程式脫離,應用程式侵入小
Advice(通知):是Aspect的具體實現,包括了cross的行為或所提供的服務
Joinpoint(連接點):Aspect在應用程式執行過程中能夠插入切面的一個點,這個點可以是方法被調用時,異常拋出時,甚至欄位被編譯時間,切面代碼可以通過這些點插入到程式的一般流程中,從而添加新的行為
Poincut(切入點):指定某個aspect在那些joinpoint時被穿插至應用程式之上
Target(目標對象):被通知的對象
Introduction(引入):給一個型別宣告額外的方法或屬性,執行時期
weave(織入):被應用對象之上的過程,三個階段,編譯,類載入,執行時起

Spring對AOP的支援   Pointcut,Aspect的不同。以及如何唄weave到應用程式。應該以實現介面的方式優先實現,可以降低耦合
純java語言來編寫
定義pintcuts可以使用設定檔
不支援屬性成員的jointpoints。破壞封裝型

Spring建立Advice   為錄入
前置通知Before Advice
目標對象的方法執行之前唄調用
通過實現methodBeforeAdvice介面來實現。before方法會再目標對象target所制定方法執行之前被調用執行

前置通知Before Advice

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.