Schema-based AOP support

本文参考至:spring-framework-reference.pdf的7.3 章节

【Schema-based AOP support】

  If you are unable to use Java 5, or simply prefer an XML-based format, then Spring 2.0 also offers
support for defining aspects using the new "aop" namespace tags. The exact same pointcut expressions
and advice kinds are supported as when using the @AspectJ style, hence in this section we will focus on
the new syntax and refer the reader to the discussion in the previous section (Section 7.2, “@AspectJ
support”) for an understanding of writing pointcut expressions and the binding of advice parameters.

  To use the aop namespace tags described in this section, you need to import the spring-aop schema as
described in Appendix C, XML Schema-based configuration. See the section called “The aop schema” for
how to import the tags in the aop namespace.

  Within your Spring configurations, all aspect and advisor elements must be placed within an
<aop:config> element (you can have more than one <aop:config> element in an application
context configuration). An <aop:config> element can contain pointcut, advisor, and aspect elements
(note these must be declared in that order).

如果,你不能使用java5,或者更倾向于使用XML格式的配置文件,Spring2.0引入了支持使用配置文件配置Aop,使用【aop】的命名空间,相同的pointCut表

答式和各种advice(before、after、around、after returning)也可以像@AspectJ中一样的使用。因而在本节中,我们将主要介绍新的语义,并且涉及到

前面的章节,更好的理解如何编写pointCut表达式和绑定advice的参数。

  要使用在本节使用aop的命名空间标签,需要参考附录C引入spring-aop的schema即-XML Schema-based configuration。

在自己的Spring配置文件中,所有的aspect和advisor标签必须至于<aop:config>标签范围内【在一个配置文件中,可以有多个<aop:config>标签】,一个

【<aop:config>】标签可以包含point、advisor、和asect元素,特别强调:元素的命名,必须要按照上述的顺序

时间: 2024-10-07 12:19:17

Schema-based AOP support的相关文章

开涛spring3(6.3) - AOP 之 6.3 基于Schema的AOP

6.3  基于Schema的AOP 基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面.切入点及声明通知. 在Spring配置文件中,所以AOP相关定义必须放在<aop:config>标签下,该标签下可以 有<aop:pointcut>.<aop:advisor>.<aop:aspect>标签,配置顺序不可变. <aop:pointcut>:用来定义切入点,该切入点可以重用: <aop:advisor>:

spring aop 基于schema的aop

AOP的基本概念: 连接点(Jointpoint):表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化.方法执行.方法调用.字段调用或处理异常等等,Spring只支持方法执行连接点,在AOP中表示为"在哪里干": 切入点(Pointcut):选择一组相关连接点的模式,即可以认为连接点的集合,Spring支持perl5正则表达式和AspectJ切入点模式,Spring默认使用AspectJ语法,在AOP中表示为"在哪里干的集合":(选取我们所需要的连接点的集

基于@AspectJ和schema的aop(一)

在前面我们使用Pointcut和Advice描述切点和增强, 并使用Advisor整合两者描述切面[email protected]使用注解来描述切点和增强.两者使用的方式不同, 但是在本质上都是一样的. 我们还是用以前的例子来举例, 学习如何使用@AspectJ来描述切点和增强.首先看一个简单的例子. package com.bao.bao.aspectj; /** * Created by xinfengyao on 16-10-23. */ public interface Waiter

小曹学spring--基于@AspectJ和Schema的AOP

前言: 上一章中已经介绍,Spring中定义一个切面是比较麻烦的,需要实现专门的接口,并进行一些较为复杂的配置.经过改进,如今Spring AOP已经焕然一新,用户可以使用@AspectJ注解非常容易的定义一个切面,而不需要实现任何接口. 对于jdk5.0以下的项目,则可以通过基于Schema的配置定义切面 1.Spring对AOP的支持 spring2.0以后对AOP功能进行了重要的增强,主要变现在以下几个方面: 新增了基于Schema的配置支持,为AOP提供了专门的aop命名空间: 新增了对

spring11----基于Schema的AOP

基于Schema的AOP从Spring2.0之后通过"aop"命名空间来定义切面.切入点及声明通知.       在Spring配置文件中,所以AOP相关定义必须放在<aop:config>标签下,该标签下可以有<aop:pointcut>. <aop:advisor>.<aop:aspect>标签,配置顺序不可变. 一. 声明切面 切面就是包含切入点和通知的对象,在Spring容器中将被定义为一个Bean,Schema方式的切面需要一个

基于@AspectJ和schema的aop(二)[email&#160;protected]基础语法

@AspectJ使用jdk5.0和正规的AspectJ切点表达式描述切面, 由于spring只支持方法的连接点,所以Spring只支持部分AspectJ的切点语言. 1.切点表达式函数 AspectJ 5的切点表达式有关键字和操作参数组成,如execution(* greetTo(..))的切点表达式, execution为关键字, "* greetTo(..)"为操作参数.在这里execution表示目标类执行某一方法, 而"* greetTo(..)"描述目标方

基于@AspectJ和schema的aop(三)---切点函数详解

切点函数是AspectJ表达式语言的核心, 也是使用@AspectJ进行切面定义的难点.本小节我们通过具体的实例对切点函数进行深入学习. [email protected]() @annotation()表示标注了某个注解的所有方法,这个比较简单. 2.execution() execution()是最常使用的切点函数,其语法如下: execution(<修饰符模式>? <返回类型模式> <方法名模式> (<参数模式>) <异常模式>?) 除了返

基于@AspectJ和schema的aop(四)[email&#160;protected]进阶

@AspectJ可以使用切点函数定义切点, 我们还可以使用逻辑运算对切点进行复合运算得到复合的切点. 我们还可以对切点进行命名, 从而可以复用切点.当一个连接点匹配多个切点时, 需要考虑增强织入的顺序.还有一个在前面提到过的问题就是, 如何访问在增强中访问连接点上下文信息.下面对这几方面进行学习. 1.对切点进行复合运算 使用切点进行复合运算, 使得我们能够拥有强大的表达切点的能力.例子如下: package com.bao.bao.aspectj; import org.aspectj.lan

cxf之java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass(Ljava/lang/C

想用cxf发布一个web服务,但是容器启动报这个错,求高人解答啊 [问题点数:20分,无满意结帖,结帖人shijing266] 楼主好懒,主要还是jar版本的问题,spring4.2.0以上需要使用cxf3.0.0以上的版本 看了一下cxf的相关pom文件确实是版本陈旧........ <!-- cxf begin --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf