本文主要是介绍Spring AOP切面日志Demo 配置文件方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一步:配置applicationContext.xml文件:
<bean id="logAopBean" class="com.demo.common.aop.LogAop"></bean><aop:config><aop:aspect id="logAspect" ref="logAopBean"><aop:pointcut expression="execution(* com.demo..*(..))" id="allMethod"/><aop:before method="before" pointcut-ref="allMethod" /><aop:after-throwing method="afterThrowing" pointcut-ref="allMethod" /><aop:after-returning method="afterReturn" pointcut-ref="allMethod" /><aop:after method="after" pointcut-ref="allMethod" /></aop:aspect></aop:config>
第二步:日志处理类的写法:
/*** LogAop.java* * Shanghai NTT DATA Synergy Software Co., Ltd. All Rights Reserved.* @author wyl* @date 2016-10-18*/ package com.demo.common.aop;import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;/*** @author wyl* @Description TODO * @date 2016-10-18**/public class LogAop {public void before(JoinPoint call){String className = call.getTarget().getClass().getName();String methodName = call.getSignature().getName();System.out.println("开始执行:"+className+"."+methodName+"()方法...");}public void afterThrowing(JoinPoint call){String className = call.getTarget().getClass().getName();String methodName = call.getSignature().getName();System.out.println(className+"."+methodName+"()方法抛出了异常...");}public void afterReturn(JoinPoint call){String className = call.getTarget().getClass().getName();String methodName = call.getSignature().getName();System.out.println(className+"."+methodName+"()方法正常执行结束...");}public void after(JoinPoint call){String className = call.getTarget().getClass().getName();String methodName = call.getSignature().getName();System.out.println(className+"."+methodName+"()最终执行步骤(finally)...");}/*//用来做环绕通知的方法可以第一个参数定义为org.aspectj.lang.ProceedingJoinPoint类型 public Object doAround(ProceedingJoinPoint call) throws Throwable { Object result = null; this.before(call);//相当于前置通知 try { result = call.proceed(); this.afterReturn(call); //相当于后置通知 } catch (Throwable e) { this.afterThrowing(call); //相当于异常抛出后通知 throw e;}finally{ this.after(call); //相当于最终通知 } return result; }*/
}
原文链接:原文链接
这篇关于Spring AOP切面日志Demo 配置文件方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!