这一讲示例了 Spring 基于配置文件的方式来配置 AOP 。
项目结构:
示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<!-- 配置 bean (被代理类) -->
<bean id="arithMeticCalculator" class="com.liwei.spring.xml.aop.ArithmeticCalculatorImpl"></bean>
<!-- 配置切面的 bean -->
<bean id="loggerAspect" class="com.liwei.spring.xml.aop.LoggerAspect"></bean>
<bean id="validateAspect" class="com.liwei.spring.xml.aop.ValidateAspect"></bean>
<!-- AOP 配置开始 -->
<aop:config>
<!-- 配置切入点表达式 -->
<aop:pointcut expression="execution(public int com.liwei.spring.xml.aop.ArithmeticCalculator.add(int,int))" id="addPointCut"/>
<!-- 配置切面 -->
<aop:aspect ref="loggerAspect" order="2">
<aop:before method="beforeMethod" pointcut-ref="addPointCut"/>
<aop:after-returning method="afterReturnMethod" pointcut-ref="addPointCut" returning="result"/>
</aop:aspect>
<aop:aspect ref="validateAspect" order="1">
<aop:around method="aroundMethod" pointcut-ref="addPointCut"/>
</aop:aspect>
</aop:config>
</beans>