AOP概述
- 什麼是AOP技術
- 在軟件業,AOP是Aspect Oriented Programming 的縮寫,意爲:面向切面編程
- AOP是一種編程範式,隸屬於軟工範疇,指導開發者如何組織程序結構
- AOP最早由AOP聯盟的組織提出的,制定了一套規範,Spring將AOP思想引入到框架中,必須遵守AOP聯盟的規範
- 通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術
- AOP是OOP的延續,是軟件開發中的一個熱點,一個Spring礦建中的一個重要的內容,是函數式編程的一種衍生範型
- 利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各個部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率
- AOP:面向切面編程(思想:—-解決OOP遇到一些問題)
- AOP採取橫向抽取機制,取代了傳統縱向繼承體系重複性代碼(性能監視,事務管理,安全檢查,緩存)
- AOP的目的:可以在不修改源代碼的前提下,對程序進行增強
AOP的相關術語
- Joinpoint(連接點)
- 所謂連接點是指那些被攔截到的點,在Spring中,這些點指的是方法,因爲Spring只支持方法類型的連接點
- Pointcut(切入點)
- 所謂的切入點是指我們要對哪些Joinpoint進行攔截的定義
- Advice(通知/增強)
- 所謂通知是指攔截到Joinpoint之後所要做的事情就是通知,通知分爲前置通知,後置通知,異常通知,最終通知,環繞通知(切面要完成的功能)
- Introduction(引介)
- 引介是一種特殊的通知在不修改類代碼的前提下,Introduction可以在運行期爲類動態地添加一些方法或Field
- Target(目標對象)
- 代理的目標對象
- Weaving(織入)
- 是指把增強應用到目標對象類創建新的代理對象的過程
- Proxy(代理)
- 一個類被AOP織入增強後,就產生一個結果代理類
- Aspect(切面)
- 是切入點和通知的結合 ,以後自己編寫和配置。