1 什麼是AOP?
AOP是在不改原有代碼的前提下對其進行增強。
AOP(Aspect Oriented Programming)面向切面程式設計,一種程式設計範式,指導開發者如何組織程式結構。
OOP(Object Oriented Programming)面向對象程式設計
2 AOP作用
作用:在不驚動原始設計的基礎上為其進行功能增強,前面咱們有技術就可以實作這樣的功能即代理模式。
3 AOP核心概念

對于上面的案例中BookServiceImpl中有save , update , delete和select方法,這些方法我們給起了一個名字叫連接配接點
(2)在BookServiceImpl的四個方法中,update和delete隻有列印沒有計算萬次執行消耗時間,但是在運作的時候已經有該功能,那也就是說update和delete方法都已經被增強,是以對于需要增強的方法我們給起了一個名字叫切入點。
(3)執行BookServiceImpl的update和delete方法的時候都被添加了一個計算萬次執行消耗時間的功能,将這個功能抽取到一個方法中,換句話說就是存放共性功能的方法,我們給起了個名字叫通知
(4)通知是要增強的内容,會有多個,切入點是需要被增強的方法,也會有多個,那哪個切入點需要添加哪個通知,就需要提前将它們之間的關系描述清楚,那麼對于通知和切入點之間的關系描述,我們
給起了個名字叫切面
(5)通知是一個方法,方法不能獨立存在需要被寫在一個類中,這個類我們也給起了個名字叫通知類
總結下:
(1)、連接配接點(JoinPoint):程式執行過程中的任意位置,粒度為執行方法、抛出異常、設定變量等
在SpringAOP中,了解為方法的執行。
(2)切入點(Pointcut):比對連接配接點的式子
在Spring AOP中,一個切入點可以描述一個具體方法,也可也比對多個方法 。
a 、一個具體的方法:如com.muxue.dao包下的BookDao接口中的無形參無傳回值的save方法
b、比對多個方法:所有的save方法,所有的get開頭的方法,所有以Dao結尾的接口中的任意方法,所有帶有一個參數的方法
連接配接點範圍要比切入點範圍大,是切入點的方法也一定是連接配接點,但是是連接配接點的方法就不一定要被增強,是以可能不是切入點。
(3) 通知(Advice):在切入點處執行的操作,也就是共性功能
在SpringAOP中,功能最終以方法的形式呈現
(4)通知類:定義通知的類
(5) 切面(Aspect):描述通知與切入點的對應關系