aop概念:
面向切面(方面、過程)程式設計,擴充套件程式不用修改源**,而是做配置
aop是個橫向採取機制,取代了傳統的縱向機制
傳統方式和縱向抽取機制
aop的橫向抽取機制原理:動態**
aop專業術語:
joinpoint(連線點):
類裡可以被增強的方法,這些方法被整成為連線點
pointcut(切入點(重點)):類裡有很多方法都可以被增強,但實際上真正被增強了的方法被稱為切入點,比如userdao類中有很多方法,但只增強了新增和刪除方法,那麼這兩個方法被稱為切入點
advice(通知/增強(重點))
:要增強的功能或邏輯,被稱為增強
通知分為:
前置通知:在方法執行之前執行
後置通知:在方法執行之後執行
異常通知:發生異常時執行
最終通知:在後置通知之後執行
環繞通知:在方法執行之前和之後都執行
aspect(切面(重點))
:把增強,應用到具體方面上,這個過程被稱為切面
還有引介、目標物件、織入、**。
在spring中要使用aop,要用aspectj框架實現
aspectj不是spring的一部分,但要配合使用才能用spring的aop
spring2.0加強了對aspectj的相關操作
要使用spring的aop操作必須先依賴aop的相關jar
aop的配置:
匯入aop約束
表示式的形式配置切入點(要增強的方法):
(1)增強book類中的add方法,*:表示所有修飾範圍,public、private等 ..:如果裡面有引數也包含
還有種方式:execution(* abc*(..)) :表示所有方法裡abc開頭的方法會被增強
使用aspectj做aop在xml中的配置:
先在bean中例項化配置被增強類和增強類
然後配置切入點:用表示式的方式表示配置的是book類中的add方法,並起別名
然後配置切面:引用上文已例項化的的增強類,在切面裡設定aop的通知型別(前置、後置、最終等),最後配置要被增強的方法,即引用pointcut1
單獨演示下環繞執行(比較特別)
xml中的配置;
spring核心基礎
核心概念介紹 ioc inverse of control,控制反轉。也就是把物件的建立交給spring框架來完成。di dependency injection,依賴注入,spring框架在建立bean時,動態的將依賴物件注入到bean 元件中。aop 面向切面程式設計,也就是在不修改目標物件原始...
spring 核心架構
spring bean 的生命週期 建立 使用 銷毀 1.1.例項化bean,設定bean的屬性 依賴注入 把這個bean依賴的bean也建立出來,進行注入 1.2如果bean實現了aware方法,spring會將容器傳遞給bean,spring容器管理下的bean會長期存活 2.1建立完bean之...
spring核心概念
ioc inverse of control,控制反轉。物件的建立權由程式控制反轉為spring框架控制。aop aspect oriented programming,面向切面程式設計。在不修改目標物件的原始碼情況下,增加ioc容器中bean的功能。di dependency injection,...