对切面和切入点的理解
<aop:config> <aop:aspect id="myAspect" ref="aBean"> <aop:pointcut expression="execution(* com.imooc.aop.schema.advice.biz.*Biz.*(..))" id="moocPointcut" /> <aop:before method="before" pointcut-ref="moocPointcut" /> //前置通知 <aop:after-returning method="afterReturning" pointcut-ref="moocPointcut" /> //返回后通知 <aop:after-throwing method="afterThrowing" pointcut-ref="moocPointcut" /> //抛出异常后通知 <aop:after method="after" pointcut-ref="moocPointcut" /> //后通知 </aop:aspect> </aop:config>
aspect引用的类aBean相当于一个切面,里面提供处理切入点的方法,pointcut里的expression相当于一个生产线,里面的各个方法就相当于生产线的切入点。之后的after,after-throwing,before相当于不同切入点的工人,通过ponitcut-ref到指定切入点工作,只不过工作时间顺序不同,分别在切入点后,出问题后,切入点前,method表示程序顺着生产线到切入点时各个工人用切入面的方法处理。