天天看點

AOP簡介和實作概念動态代理開發:Aspect J開發:(推薦使用基于注解的聲明式)

概念

AOP面向切面程式設計是OOP面向對象程式設計的一種補充。通常用作事務處理,日志,異常,權限操作。采用的是橫向抽取機制,将分散在各個方法中的重複代碼提取出來,然後在程式編譯或運作時,再進行按需加載。進而使開發人員專注于核心業務,而不必過多的關心其他業務邏輯的實作。主流的架構有兩個,一個是Spring AOP(采用的是純java實作,在運作時通過代理的方式向目标類植入增強的代碼),另一個是Aspect J(基于java的AO架構,在編譯時期提供橫向代碼切入)

動态代理開發:

JDK動态代理:使用動态代理的對象必須實作一個或者是多個接口

CGLB代理:采用的是位元組碼技術

基于代理類:

Aspect J開發:(推薦使用基于注解的聲明式)

基于XML的聲明式:在<aop:config>中配置切面,切入點和增強。若切入點是配置在切面類,表示該切入點隻對目前切面有效。若是配置在<aop:config>下表示該切入點是全局切入點,可被多個切面共享。

基于注解的聲明式: