Spring中的AOP(六)——基于XML配置文件方式的AOP
2017-08-10 14:24
615 查看
除了前面介绍的基于JDK1.5的注解方式来定义切面,切入点和增强处理外,spring AOP也允许直接使用XML配置文件来管理它们。在JDK1.5之前,只能使用配置文件的方式来管理,在Spring2.X后提供了一个新的aop命名空间来定义切面、切入点和增强处理。
相比之下,使用XML配置文件方式有如下优点:
如果没有使用JDK1.5以上版本,只能使用XML配置文件的方式
对早期的Spring用于来说更加习惯,而且这种方式允许使用纯粹的POJO来支持AOP
采用XML配置方式时,我们可以清晰的看到系统中存在哪些切面
同时,XML配置文件的方式也有如下缺点:
不能将切面,切入点和增强处理等封装到一个地方。当我们需要查看切面、切点和增强处理时,必须同时结合Java文件和XML配置文件
XML配置文件方式比@AspectJ方式有更多限制:仅支持“singleton”切面Bean,不能在XML中组合多个命名连接点的声明
除此之外,@AspectJ切面还有一个优点就是能被Spring AOP和AspectJ同时支持,如果有一天我们需要将应用改为AspectJ来实现AOP,使用@AspectJ将非常容易迁移。
在Spring的配置文件中,所有的切面、切点和增强处理都必须定义在<aop:config../>元素内部。<beans../>元素可以包含多个<aop:config../>元素,一个<aop:config../>可以包含pointcut、advisor和aspect元素,且这三个元素需要按照此顺序来定义。
注意:当我们使用<aop:config../>方式进行配置时,可能与Spring的自动代理方式相互冲突,因此,建议要么全部使用<aop:config../>配置方式,要么全部使用自动代理方式,不要把两者混合使用。
配置切面
配置<aop:config../>元素时,实质是将已有的Spring Bean转换成切面Bean,所以需要先定义一个普通的Spring Bean。因为切面Bean可以当成一个普通的Spring Bean来配置,所以我们完全可以为该切面Bean配置依赖注入。当切面Bean的定义完成后,通过<aop:congig../>元素中是哟个ref属性来引用该Bean,就可以将该Bean转换成切面Bean了。配置<aop:config../>元素时可以指定如下三个属性:
id:该切面Bean的标识名
ref:指定将要被转换成切面Bean的的普通Bean的id
order:指定该切面Bean的优先级,值越小,优先级越高
如下配置片段定义了一个切面:
相比之下,使用XML配置文件方式有如下优点:
如果没有使用JDK1.5以上版本,只能使用XML配置文件的方式
对早期的Spring用于来说更加习惯,而且这种方式允许使用纯粹的POJO来支持AOP
采用XML配置方式时,我们可以清晰的看到系统中存在哪些切面
同时,XML配置文件的方式也有如下缺点:
不能将切面,切入点和增强处理等封装到一个地方。当我们需要查看切面、切点和增强处理时,必须同时结合Java文件和XML配置文件
XML配置文件方式比@AspectJ方式有更多限制:仅支持“singleton”切面Bean,不能在XML中组合多个命名连接点的声明
除此之外,@AspectJ切面还有一个优点就是能被Spring AOP和AspectJ同时支持,如果有一天我们需要将应用改为AspectJ来实现AOP,使用@AspectJ将非常容易迁移。
在Spring的配置文件中,所有的切面、切点和增强处理都必须定义在<aop:config../>元素内部。<beans../>元素可以包含多个<aop:config../>元素,一个<aop:config../>可以包含pointcut、advisor和aspect元素,且这三个元素需要按照此顺序来定义。
注意:当我们使用<aop:config../>方式进行配置时,可能与Spring的自动代理方式相互冲突,因此,建议要么全部使用<aop:config../>配置方式,要么全部使用自动代理方式,不要把两者混合使用。
配置切面
配置<aop:config../>元素时,实质是将已有的Spring Bean转换成切面Bean,所以需要先定义一个普通的Spring Bean。因为切面Bean可以当成一个普通的Spring Bean来配置,所以我们完全可以为该切面Bean配置依赖注入。当切面Bean的定义完成后,通过<aop:congig../>元素中是哟个ref属性来引用该Bean,就可以将该Bean转换成切面Bean了。配置<aop:config../>元素时可以指定如下三个属性:
id:该切面Bean的标识名
ref:指定将要被转换成切面Bean的的普通Bean的id
order:指定该切面Bean的优先级,值越小,优先级越高
如下配置片段定义了一个切面:
相关文章推荐
- Spring中的AOP(六)——基于XML配置文件方式的AOP
- spring之aop编程——基于注解、xml配置文件方式
- 8 -- 深入使用Spring -- 4...6 AOP代理:基于注解的XML配置文件的管理方式
- 8.4.6: Spring的AOP---基于XML配置文件的管理方式
- Spring中的AOP(七)——基于XML配置文件方式的AOP
- Spring关于AOP配置举例(XML配置文件方式)
- spring学习笔记(22)----基于配置文件的方式来配置AOP
- [学习小结]Spring_通知的那些事和基于配置文件的方式来配置AOP
- Spring 基于 xml 文件配置 AOP
- spring基于xml加载和读取properties配置文件的方式
- (一)Spring AOP:基于XML配置文件
- spring aop的使用(注解方式以及基于xml配置方式)
- Spring 基于xml配置方式的AOP
- spring aop的使用(注解方式以及基于xml配置方式)
- Spring基于配置文件的方式来配置AOP
- 20.Spring学习笔记_基于配置文件的方式来配置 AOP(by尚硅谷_佟刚)
- Spring-AOP:基于配置文件方式的AOP
- Spring4学习笔记-AOP(基于配置文件的方式)
- Intellij IDEA创建Spring项目之基于Aspectj的AOP操作(XML配置方式)
- 重温Spring之旅6——基于XML配置方式进行AOP开发