名詞解釋:
aspect //定義乙個切面
component
@order(1)
public class systemlogaspect {}
或者配置檔案:
aop:config>
//定義乙個切面
@aspect
@component
@order(1)
public class systemlogaspect
//controller層切點
@pointcut("@annotation(com.poobo.comm.web.aop.systemctrlo4jaop)")
public void controlleraspect()
/**
* 前置通知 用於攔截controller層記錄使用者的操作
* * @param joinpoint 切點
*/
@before("controlleraspect()")
public void dobefore(joinpoint joinpoint) catch (exception e) ",e);
}
}
/**
* 異常通知 用於攔截service層記錄異常日誌
* * @param joinpoint
* @param e
*/
@afterthrowing(pointcut = "serviceaspect()", throwing = "e")
public void doafterthrowing(joinpoint joinpoint, throwable e)
}
try catch (exception ex) ", ex);
}
/***********記錄本地異常日誌***********/
// log.error(null,joinpoint.gettarget().getclass().getname() + joinpoint.getsignature().getname(), e.getclass().getname(), e.getmessage());
}
/**
* 獲取註解中對方法的描述資訊 用於service層註解
* * @param joinpoint 切點
* @return 方法描述
* @throws exception
*/
public static string getservicemthoddescription(joinpoint joinpoint)
throws exception
}
}
return description;
}
/**
* 獲取註解中對方法的描述資訊 用於controller層註解
* * @param joinpoint 切點
* @return 方法描述
* @throws exception
*/
public static string getcontrollermethoddescription(joinpoint joinpoint) throws exception
}
}
return description;
}
}
//自定義註解
/**
* 自定義aop攔截日誌
* @author xyy
* */
@target()
@retention(retentionpolicy.runtime)
@documented
public @inte***ce systemctrlo4jaop
//應用於乙個切入點
@responsebody
@systemctrlo4jaop(description="刪除商品")
當執行切入點時即可在資料庫儲存一條日誌記錄
aop切面程式設計PHP PHP AOP面向切面程式設計
aop aspect oriented programming 面向切面程式設計 字面解析 這裡的切面 aspect 通常是指類的乙個例項方法,也就是說其實我們只要在類的乙個例項方法執行前或後面掛載前置或後置方法,有點像鉤子,其實目的都是一樣的,都是為了切分和擴充套件相應方法的功能,而不需要在原始方...
aop 面向切面程式設計
起源 研究人員就對物件導向思想的侷限性進行了分析。他們研究出了一種新的程式設計思想,借助這一思想或許可以通過減少 重複模組從而幫助開發人員提高工作效率。隨著研究的逐漸深入,aop也逐漸發展成一套完整的程式設計思想,各種應用aop的技術也應運而生。aop思想 定義乙個切面,在切面的縱向定義處理方法,處...
AOP面向切面程式設計
1 概念 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop是oop的延續,利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率 2 作用 1.解耦,將通用性的功能模組 與業務 解耦 ioc專...