在我的另一篇文章中(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:如果错误,请大家赐教,不胜感激!如果疑惑,也可相互交流学习。

基于XML配置的spring aop增强配置和使用的更多相关文章

  1. Spring Aop(七)——基于XML配置的Spring Aop

    转发:https://www.iteye.com/blog/elim-2396043 7 基于XML配置的Spring AOP 基于XML配置的Spring AOP需要引入AOP配置的Schema,然 ...

  2. 基于注解的Spring AOP的配置和使用

    摘要: 基于注解的Spring AOP的配置和使用 AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不 ...

  3. spring基于xml的声明式事务控制配置步骤

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  4. Spring AOP 不同配置方式产生的冲突问题

    Spring AOP的原理是 JDK 动态代理和CGLIB字节码增强技术,前者需要被代理类实现相应接口,也只有接口中的方法可以被JDK动态代理技术所处理:后者实际上是生成一个子类,来覆盖被代理类,那么 ...

  5. spring AOP为什么配置了没有效果?

     spring Aop的配置一定要配置在springmvc配置文件中         springMVC.xml 1 <!-- AOP 注解方式 :定义Aspect --> <!-- ...

  6. 基于 Annotation 拦截的 Spring AOP 权限验证方法

    基于 Annotation 拦截的 Spring AOP 权限验证方法 转自:http://www.ibm.com/developerworks/cn/java/j-lo-springaopfilte ...

  7. Spring Aop(二)——基于Aspectj注解的Spring Aop简单实现

    转发地址:https://www.iteye.com/blog/elim-2394762 2 基于Aspectj注解的Spring Aop简单实现 Spring Aop是基于Aop框架Aspectj实 ...

  8. 基于注解的Spring AOP的配置和使用--转载

    AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术. ...

  9. 基于配置的Spring AOP

    前面几篇学习了Spring的依赖注入,这篇开始学习另一个核心功能——面向切面编程AOP. 通过本文,你可以了解到: 1 Spring xml规范 2 通过配置文件实现面向切面编程 3 对比与传统AOP ...

随机推荐

  1. Ajax跨域:jsonp还是CORS

    跨域一般用jsonp,兼容性比较好.CORS是html5最新的XHR第二版本,不支持IE8,IE9,对移动端的支持非常好.但是考虑项目后期这部分会转到同域名下,而且网址不需要支持ie8,ie9,所以我 ...

  2. Git的用法

    Git的用法 Git 的也可以理解为版本控制器.版本控制器(维基的解释):维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确 ...

  3. 设置html title标题左侧的小图标

    网页title旁边的小图片设置,图片要求格式必须是.ico,可以使用在线的转换工具把jpg和png图片转换为ico图片,工具地址:http://www.ico.la/ 在html文件中的<hea ...

  4. Django~待解决的问题

    1.一个Model.py中简单调用多个数据库,不写数据库路由

  5. 第一章 简单工厂模式 及 UML中类图的表示方法

    写一个简单计算器程序时,可以写一个操作类,然后加.减.乘.除操作分别继承它,复写操作计算结果的方法.写一个简单工厂类,通过输入的操作符,使用操作类来new一个相应的操作类的子类对象.这样,工厂就实例化 ...

  6. cacti 安装

    cacti:是常用的一个监控软件(开源,免费) 特点:重图形,有数据历史,需要用到数据库的支持,支持web配置,默认不支持告警,可以加插件 cacti安装 1.安装扩展源epel (nagios 和z ...

  7. 使用Spring Task轻松完成定时任务

    一.背景 最近项目中需要使用到定时任务进行库存占用释放的需求,就总结了如何使用Spring Task进行简单配置完成该需求,本文介绍Spring3.0以后自定义开发的定时任务工具, spring ta ...

  8. Linux-详解inode节点

    Linux inode节点 inode查看命令 stat 功能:列出文件大小,文件所占的块数,块的大小,主设备号和次设备号,inode number,链接数,访问权限,uid,gid,atime,mt ...

  9. mysql常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. 注:对大小写不敏感 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大 ...

  10. quartz配置文件详解

    quartz配置文件详解(转载)     quartz学习总结: 一.关于job:    用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...