1:後置通知的返回值問題日誌
1.在後置通知中能夠添加返回值,用來對返回值作處理。配置方法就是在xml文件中的後置通知配置項中,添加returning屬性 returning="name" 屬性的值就是用來接收參數的名稱,這個名稱必須是固定的不能隨便更改。xml
2.後置通知與環繞通知一塊兒使用時,若是後置通知須要返回值,那麼在環繞通知中 必須添加返回值參數。否則目標對象執行的返回值就會被環繞通知所攔截。不會再往下傳遞參數。對象
2.異常通知返回值問題get
若是想得到異常信息。能夠在異常通知中添加返回值爲throwing="throwable"io
名稱和後置通知同樣都是固定的寫法 應該和異常通知中的參數保持一致。咱們能夠經過異常信息 作一個異常日誌收集系統。使用AOP特別的方便。class
3.註解形式配置AOP配置
1.AOP註解開啓aop
<aop:aspectj-autoproxy proxy-target-class="true"/>service
2.指明切面類方法
@Aspect
public class ReturnAspect
3.編寫切入點
@Pointcut(value="execution(* service..*(..))")
public void pointcut(){
}
4.配置通知與切入點綁定
@Around(value="pointcut()")
public String around(ProceedingJoinPoint joinPoint) throws Throwable{
String name = (String) joinPoint.proceed();
System.out.println("!!!!!!!"+name);
return name;
}
注意事項
若是報錯信息。中包含::0 應該檢查切入點表達式中的返回值和通知中的參數是否匹配。
4.若是獲得方法上的註解
@Around(value="execution(* service..*(..)) && @annotation(hello)")
public String around(ProceedingJoinPoint joinPoint,Hello hello)
這樣利用Spring的機制可以快速的獲取方法上的註解。便於之後註解的獲取。