Spring AOP--基于XML文件的配置

Spring AOP的配置可以基于注解,也可以基于XML文件。前面几篇都是使用注解的方式。下面介绍下使用XML文件如何配置

使用的测试类和切面类都类似。只需要属于AOP的注解去掉即可。下面是AOP的XML配置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:aop="http://www.springframework.org/schema/aop"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
 7         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
 9     
10     <!-- 配置bean -->
11     <bean id="arithmeticCalculator" class="com.yl.spring.aop.xml.ArithmeticCalculatorImpl"></bean>
12     
13     
14     <!-- 配置切面的bean -->
15     <bean id="loggingAspect" class="com.yl.spring.aop.xml.LoggingAspect"></bean>
16     
17     <bean id="validationAspect" class="com.yl.spring.aop.xml.ValidationAspect"></bean>
18     
19     <!-- 配置AOP -->
20     <aop:config>
21         <!-- 配置切点表达式 -->
22         <aop:pointcut expression="execution(public int com.yl.spring.aop.xml.ArithmeticCalculator.*(..))" id="pointcut"/>
23         <!-- 配置切面及通知 -->
24         <aop:aspect ref="loggingAspect" order="2">
25             <aop:before method="beforeMethod" pointcut-ref="pointcut"/>
26             <aop:after method="afterMethod" pointcut-ref="pointcut"/>
27             <aop:after-throwing method="afterThrowing" pointcut-ref="pointcut" throwing="e"/>
28             <aop:after-returning method="afterReturning" pointcut-ref="pointcut" returning="result"/>
29             
30             <aop:around method="aroundMethod" pointcut-ref="pointcut"/>
31         </aop:aspect>
32         
33         <aop:aspect ref="validationAspect" order="1">
34             <aop:before method="vlidateArgs" pointcut-ref="pointcut"/>
35         </aop:aspect>
36     </aop:config>
37     
38 </beans>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。