基于XML配置的spring aop增强配置和使用

在我的另一篇文章中(http://www.cnblogs.com/anivia/p/5687346.html),通过一个例子介绍了基于注解配置spring增强的方式,那么这篇文章,只是简单的说明,如何通过xml来实现基于注解代码的增强效果,具体做法是:

1、JAVA代码中不再使用注解

2、在资源配置xml文件中,通过xml的方式声明主逻辑Bean和切面Bean,并使用<aop>标签配置切入点和增强,配置的方式为:

    <!-- 切面 -->
    <bean id="aopBean"
        class="com.minlz.aop.anno.AnnoAspectBean"/>
    <!-- 主逻辑 -->
    <bean id="annoService"
        class="com.minlz.aop.anno.AnnoService"/>

    <aop:config>
        <aop:aspect ref="aopBean">
            <aop:pointcut expression="execution(* com.minlz.aop.anno..*.mainService(..)) and args(param)" id="aopPoint"/>
            <aop:before method="before" pointcut-ref="aopPoint"/>
            <aop:after method="after" pointcut-ref="aopPoint"/>
            <aop:after-throwing method="afterThrowing" pointcut-ref="aopPoint" throwing="ex"/>
            <aop:after-returning method="afterReturning" pointcut-ref="aopPoint" returning="retValue"/>
            <aop:around method="around" pointcut-ref="aopPoint"/>
        </aop:aspect>
    </aop:config>

简单解释下XML的配置元素

1、首先声明两个Bean,这个很好理解

2、<aop:config>标签,是配置AOP的主要标签,里面可以配置多个切面(<aop:aspect>),引用一个切面Bean,且通过多种标签配置前置增强,后置增强,异常抛出增强等,都是引用一个切入点,配置返回值参数名或者异常名等。

这样配置之后运行结果,同注解配置相同。

PS:如果错误,请大家赐教,不胜感激!如果疑惑,也可相互交流学习。

上一篇:注解配置的Spring MVC


下一篇:Spring Aop(七)——基于XML配置的Spring Aop