总的来说:切入点在执行相应方法的时候,会去执行切面中的对应方法
下面写出一个完整的前置通知的例子:
1、配置文件如下:
<aop:config>
<aop:aspect id="moocAspectAOP" ref="moocAspect">
<aop:pointcut expression="execution(* com.wuyonghu.spring2.AspectBiz.*(..))"
id="moocPointCut" />
<aop:before method="before1" pointcut-ref="moocPointCut" />
</aop:aspect>
</aop:config>
1、先看切入点,这里的pointcut的expression为* com.wuyonghu.spring2.AspectBiz.*(..),表示的是此类下面的所有方法执行的时候都可以认为是一个切入点
2、再看aop-aspect,其中的ref表示的是哪个类作为切面,ref中为bean的id,切面可以看作是切入点的辅助类
3、最后看aop-before,因为是before,那么其中的method就表示在执行切入点中的任何方法前先执行切面中的该方法
2、切入点后通知:
3、抛出异常通知
4、finally advice:最后执行的方法,就算有异常也会执行,就像try catch中的finally