2015年6月23日 星期二

AOP - Concept

AOP

不使用 procedure 的形式來撰寫邏輯,也就是不使用呼叫函數的方式。
AOP 將邏輯透過 weaving (織入) 加入現有程式
可以不更改到原有程式碼(Target)
但是由於加入邏輯的方式如此神奇,所以如果"適用"範圍與方式需要做些限制。

Weaving

Weaving 的時間點可以在編譯時期,或者是執行期進行。
Spring AOP 是在執行期做 weaving,透過 proxy pattern 來達成

JoinPoint

被加入額外邏輯的位置,函數執行時、Class 初始時、Object 初始時。

Advice

加入的程式。
被加入程式的地方,join point 前(before advice)、後(after advice)、前後(around advice)加邏輯。

Pointcuts

一個 join point 的集合,指定一個 advice 會在哪些 join point 執行。