AOP術語介紹

1. 正常的編程為從上到下的調用,執(zhí)行



2. 加入了安全性檢查,日志這樣的代碼. 這是一個橫切的問題,其于正常的業(yè)務毫無關系.

橫切的問題會散布在代碼的各個角落
.


3.這個橫切就是橫切性的關注點: Cross cutting concern





4.
將橫切的關注點都放在一個類中(如動態(tài)代理項目中的SecurityHandler.java).這個類就叫做切面.

   對橫切關注點進行模塊化,這個模塊化的類就叫做切面類(Aspect對應的類) ,


 

 

5. 在切面類中對某個問題如日志或安全性檢查的具體實現(xiàn)方法,叫做橫切關注點的具體實現(xiàn)(稱為Advice).






 

 

6. 這個Advice可以進行分類. :在業(yè)務方法執(zhí)行之前,之后.異常時候……


 

7. Advice應用的目標方法范圍(那些方法之前,之后,異常….)這個過濾范圍叫做切入點Pointcut()


 

8 .植入

Advice應用的目標方法的過程叫做植入(Weave)

Spring只支持針對業(yè)務方法執(zhí)行前,執(zhí)行后進行植入. 即只支持方法級別的植入

植入的地方就叫做連接點.

SpringAop是使用代理模式.

 

橫切問題的處理思路:

發(fā)現(xiàn)橫切性的問題,將其模塊化(切片).然后形成切片類,在其中實現(xiàn)這些橫切性的功能.