註解實現aop:
1.啟用aspectj支援
2.在切面類加入@component 、@aspect
3.配置切入點表示式
4.加入增強的方法,注意:環繞增強的方法中一定要加入proceedingjoinpoint引數
5.切面優先順序用切面類實現介面 implements ordered{} 或 @ordered註解
**實現:
dao層 ,註解用 @repository
@repository // dao層
public class userdaoimpl implements userdao
public int update()
}service層 ,註解用 @service
@service
public class userserviceimpl implements userservice
public int update()
}增強類
@component
@aspect
@order(6)
public class adviceclass /implements ordered/
@before("p()")
public void before(joinpoint jp)
} // 獲取目標方法物件
userservice target = (userservice) jp.gettarget();
}/**
* 後置增強,可以拿目標方法返回值,如果目標方法報異常,後置增強不會執行
*/@afterreturning(value="p()", returning="result")
public void afterreturning(joinpoint jp,object result)
/** * 最終增強,如果目標方法報異常,最終增強會執行
*/@after("p()")
public void after(joinpoint jp)
/** * 環繞增強 : 相當於,前置和後置增強的綜合體,同時它還可以擷取目標方法的返回值,對目標方法返回值進行修改
* @return
* @throws throwable
*/@around("p()")
public object around(proceedingjoinpoint pjp) throws throwable
/** * 異常增強 : 目標方法報異常時才會執行
* @param jp
* @param e
*/@afterthrowing(value="p()", throwing="e")
public void exception(joinpoint jp, exception e)
/*public int getorder() */注:要實現排序,可以多寫幾個增強類,這裡不再重複寫增強類了
Spring之通過註解方式實現AOP
乙個簡單的通過註解方式實現aop 通過aop統計方法呼叫耗時 目錄結構 具體類如下 配置類 package com.infuq.springaop import org.springframework.context.annotation.componentscan import org.sprin...
Spring以註解方式使用aop
7.spring以註解方式使用 xmlversion 1.0 encoding utf 8 beans xmlns xsi xmlns xmlns context xmlns aop xsi schemalocation spring beans 4.2.xsd spring context 4.2...
使用spring註解方式實現AOP 二
如果需要對業務方法中的引數和返回值做處理的情況下 package com.chris.aop import org.springframework.stereotype.service service testservice public class testservicebean public s...