一、基于XML的AOP
1.核心代码
<!--扫描组件-->
<context:component-scan base-package="com.atguigu.spring.aop.xml"></context:component-scan>
<!--设置aop切面-->
<aop:config>
<!--设置切入点-->
<aop:pointcut id="pointCut" expression="execution(* com.atguigu.spring.aop.xml.CalculatorImpl.*(..))"/>
<!--引入切面-->
<aop:aspect ref="loggerAspect">
<!--前置方法-->
<aop:before method="beforeAdviceMethod" pointcut-ref="pointCut"></aop:before>
<!--后置方法-->
<aop:after method="afterAdviceMethod" pointcut-ref="pointCut"></aop:after>
<!--返回方法-->
<aop:after-returning method="afterReturningAdviceMethod" returning="result" pointcut-ref="pointCut"></aop:after-returning>
<!--异常方法-->
<aop:after-throwing method="afterThrowingAdviceMethod" throwing="ex" pointcut-ref="pointCut"></aop:after-throwing>
<!--环绕方法-->
<aop:around method="arroundAdviceMethod" pointcut-ref="pointCut"></aop:around>
</aop:aspect>
</aop:config>
<aop:config>
<aop:pointcut id="pointCut" expression="execution(* com.atguigu.spring.aop.xml.CalculatorImpl.*(..))"/>
<aop:aspect ref="validateAspect" order="1" >
<aop:before method="beforeMethord" pointcut-ref="pointCut"></aop:before>
</aop:aspect>
</aop:config>
</beans>