用于记录日志的工具类,它里面提供了公共的代码
/*用于记录日志的工具类,它里面提供了公共的代码*/
public class Logger {/*前置通知*/public void beforePrintLog(){System.out.println("(前置通知)Logger类中的beforePrintLog方法开始记录日志了");}/*后置通知*/public void afterReturningPrintLog(){System.out.println("(后置通知)Logger类中的afterReturningPrintLog方法开始记录日志了");}/*异常通知*/public void afterThrowingPrintLog(){System.out.println("(异常通知)Logger类中的afterThrowingPrintLog方法开始记录日志了");}/*最终通知*/public void afterPrintLog(){System.out.println("(最终通知)Logger类中的afterPrintLog方法开始记录日志了");}
}
配置spring的IOC
<!--配置spring的IOC-->
<bean id="accountService" class="com.yujie.service.impl.AccountServiceImpl"></bean><!--配置logger类-->
<bean id="logger" class="com.yujie.utils.Logger"></bean>
<!--配置AOP-->
<aop:config><!--配置切面--><aop:aspect id="logAdvice" ref="logger"><!--配置前置通知--><aop:before method="beforePrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:before><!--配置后置通知--><aop:after-returning method="afterReturningPrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:after-returning><!--配置异常通知--><aop:after-throwing method="afterThrowingPrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:after-throwing><!--配置最终通知--><aop:after method="afterPrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:after></aop:aspect>
</aop:config>
没有异常通知,是因为我们的程序在执行的过程中没有产生异常,所以不会有异常通知。
如果修改saveAccount的方法
public void saveAccount() {System.out.println("执行了保存");int i=1/0;
}
再次进行
后置通知没有了。异常通知有了
前置通知是在切入点方法执行之前执行
后置通知是在切入点方法正常执行之后执行
异常通知在切入点方法执行产生异常之后执行
最终通知无论切入点方法是否正常执行它都会在其后面执行
后置通知和异常通知永远只能执行一个。
比如事务要么提交,要么回滚,不可能既提交和回滚
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态