Spring的aop操作
aop:
面向切面的編程,擴展功能不修改源代碼。
操作術語:
連接點:在類裏面那些方法可以被增強,這些方法稱爲連接點
1-切入點:在類裏面可以有很多的方法被增強,比如實際操作中,只是增強了類裏面的add方法和update方法實際增強的方法稱爲切入點。
2-通知/增強:增強的邏輯,稱爲增強。例如擴展日誌的功能,這個日誌功能就成爲增強
前置通知:在方法之前執行
後置通知:在方法之前執行
異常通知:方法出現異常
最終通知:在後置之後執行
環繞通知:在方法之前和之後執行
3-切面:吧曾倩應用到具體方法上面,過程稱爲切面。
舉例:把增強應用到切入點的過程
spring的aop操作:
1-在spring裏面進行aop操作,使用aspectj實現
(1)aspectj不是spring一部分和spring一起使用進行aop操作
(2)spring2.0以後新增了對aspectj支持
2-使用aspectj實現aop 的兩種方式
(1)基於aspectj的xml配置
(2)基於aspectj的註解方式
一:aop操作:(xml核心的配置方式)
1-除了導入基本的jar包以外還需要導入aop相關的jar包
2-xml核心的配置文件,導入aop約束
***使用表達式配置切入點:
1-切入點:實際增強的方法
2-常用的表達式
execution(<訪問修飾符>?<返回類型><方法名>(<參數>)<異常>)
(1)execution(* com.hkd.Book.add(..))
(2) execution(* com.hkd.Book.*(..))
(3) execution(* *.*(..))
(4)匹配所有save開頭的方法 execution(* sava*(..))
二:基於aspectj的註解aop:
1-使用註解方式實現aop操作,
第一步,創建對象
第二步,zai spring 核心配置文件中開啓aop操作
第三步,在增強類上面使用註解完成aop