1. 程式人生 > >【Spring 】【AOP】註解開發及excution函式的使用

【Spring 】【AOP】註解開發及excution函式的使用

一、excution函式的使用

語法:[訪問修飾符]  返回值  包名.類名.方法名 (引數)

舉例1:public * com.test.Dao.userDal.save(..)//*任意返回值, .. 任意引數

二、註解開發

步驟1:引入相關JAR包

步驟2:開啟XML中的註釋,

步驟3:配置切面類的bean,要增強類的bean,註解切面類

//切面類

@Aspect
public class A{
//before是前置通知
@Before(value="execution(* 包.類名.方法名(..))")//要增強的方法
public void fun(){}//增強方法
//後置通知
	@AfterReturning(value="execution(*  com.testSpring.AOP.Dao.UserDao.delete(..))" ,returning="result")
	public static void getMD5Del(Object result) {
        
        System.out.println("被增強方法的返回值是" + result);
	}
//環繞通知
	@Around(value="execution(*  com.testSpring.AOP.Dao.UserDao.update(..))",argNames="joinpoint")
	public static void getMD5Up(ProceedingJoinPoint joinpoint) throws Throwable {
		System.out.println("around before");
		Object obj = joinpoint.proceed();
        System.out.println("return value is" + (String)obj);
        System.out.println("around after");
		
	}
//異常通知
	@AfterThrowing(value="execution(*  com.testSpring.AOP.Dao.UserDao.query(..))",throwing="ex")
	public static void throwEx(Throwable ex) {
		System.out.println("ex :" + ex.getMessage() );
	}
最終通知
	@After(value="execution(*  com.testSpring.AOP.Dao.UserDao.query(..))")
	public static void finallyRun() {
		System.out.println("最終通知");
	}