一.前置知识
消息分类:
before :前置消息,即在目标方法执行之前执行。
after-returning:后置消息,即在目标方法执行之后执行。
after-throwing:异常消息,即在目标方法中执行到出现异常后执行。
after :最终消息,此方法无论是否异常都会最终执行。
原理:spring aop是使用动态代理(包括基于接口和基于子类两种代理)spring会根据情况选择相应的类型。动态代理内部使用的反射进行获取对象并执行方法。
问题:在配置aop时,将aop:after和aop:after-returning位置互换,那么在目标方法上执行效果也是两者互换。
<aop:config>
<aop:aspect id="useAspect" ref="useAdvice">
<aop:pointcut id="usePointcut" expression="execution(public void com.xzx.Service.Impl.ServiceImpl.show2(int))"></aop:pointcut>
<aop:before method="before" pointcut-ref="usePointcut"></aop:before>
<aop:after-returning method="afterreturning" pointcut-ref="usePointcut"></aop:after-returning>
<aop:after method="after" pointcut-ref