Spring AOP之切入点指示符

execution是Spring AOP中最主要的切入点指示符,该切入点的用法相对复杂,execution表达式的格式如下:

execution(modifiers-pattern? ret-type=pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)

上面格式中的execution是不变的,用于作为execution表达式的开头,整个表达式中的解释如下:

  • modifiers-pattern:指定方法的修饰符,支持通配符,该部分可以省略
  • ret-type-pattern:指定方法的返回值类型,支持通配符,可以使用"*"通配符来匹配所有的返回值类型。
  • declaring-type-pattern:指定方法所属的类,支持通配符,该部分可以省略。
  • name-pattern:指定匹配指定的方法名,支持通配符,可以使用"*"通配符来匹配所有方法。
  • param-pattern:指定方法声明中的形参列表,支持两个通配符,即"*"和"..",其中“*”代表一个任意类型的参数,而“..”代表零个或多个任意类型的参数。例如,()匹配一个不接受任何参数的方法,而(..)匹配一个接受任意数量参数的方法,(*)匹配了一个接受一个任何类型的参数的方法,(*,String)匹配了一个接受两个参数的方法,其中第一个参数是任意类型,第二个参数必须是String类型。
  • throws-pattern:指定方法声明抛出的异常,支持通配符,该部分可以省略.
时间: 2024-11-25 08:51:21

Spring AOP之切入点指示符的相关文章

zbb20181012 spring,aop,execution切入点表达式

execution切入点表达式 Spring AOP 用户可能会经常使用 execution切入点指示符.执行表达式的格式如下:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)除了返回类型模式(上面代码片断中的ret-type-pattern),名字模式和参数模式以外, 所有的部分都是可选的.返回类型模式决定了方法的返

【Spring AOP】切入点表达式(四)

一.切入点指示符 切入点指示符用来指示切入点表达式目的,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点: within:用于匹配指定的类及其子类中的所有方法. this:匹配可以向上转型为this指定的类型的代理对象中的所有方法. target:匹配可以向上转型为target指定的类型的目标对象中的所有方法. args:用于匹配运行时传入的参数列表的类型为指定的参数列表类型的方法: @

Spring AOP的切入点表达式

在spring Aop中要使用AspectJ的切点表达式语言来定义切点.Spring仅仅支持AspectJ切点指示器的一个子集.下表列出了Spring AOP所支持的AspectJ切点指示器. 在Spring中尝试使用AspectJ其他指示器时会抛出IlleagalArgumentException.以上指示器中只有execution指示器是实际执行匹配的,而其他的指示器都是用来限制匹配的. 一个常见的切点表达式如下图: 表达式以"*"号开始,表明了可以返回任何数据类型.对于参数列表使

Spring AOP介绍及源码分析

一.AOP介绍 举个例子来说明一下吧!现在系统中有很多的业务方法,如上传产品信息.修改产品信息.发布公司库等:现在需要对这些方法的执行做性能监控,看每个业务方法的执行时间:在不改变原业务代码的基础上,也许我们会这么做: Offer接口: Offer实现: Offer代理: 我们要通过下面的方式来使用: 上面的例子的输出为: 上面的例子中,OfferProxy实现了IOffer,而所有的业务实现均委托给其成员offer:可以想像,这应该就是最简单的AOP的实现了:但这种方式会存在一个问题:如果有非

Spring的AOP AspectJ切入点语法详解(转)

一.Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点: within:用于匹配指定类型内的方法执行: this:用于匹配当前AOP代理对象类型的执行方法:注意是AOP代理对象的类型匹配,这样就可能包括引入接口也类型匹配: target:用于匹配当前目标对象类型的执行方法:注意是目标对象的类型匹配,

Spring配置AOP实现定义切入点和织入增强

经过AOP的配置后,可以切入日志功能.访问切入.事务管理.性能监测等功能. 首先实现这个织入增强需要的jar包,除了常用的 com.springsource.org.apache.commons.logging-1.1.1.jar, com.springsource.org.apache.log4j-1.2.15.jar, spring-beans-3.2.0.RELEASE.jar, spring-context-3.2.0.RELEASE.jar, spring-core-3.2.0.REL

spring aop 申明了切面类之后,如何申明切入点呢?

8.2.3 Declaring a pointcut Recall that pointcuts determine join points of interest, and thus enable us to control when advice executes. Spring AOP only supports method execution join points for Spring beans, so you can think of a pointcut as matching

必备技能:spring aop 切入点表达式,你都会么?

本文主要介绍spring aop中9种切入点表达式的写法 execute within this target args @target @within @annotation @args 1.execute表达式 拦截任意公共方法 execution(public * *(..)) 拦截以set开头的任意方法 execution(* set*(..)) 拦截类或者接口中的方法 execution(* com.xyz.service.AccountService.*(..)) 拦截Account

Spring Aop详尽教程

一.概念 AOP(Aspect Oriented Programming):面向切面编程. 面向切面编程(也叫面向方面编程),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. 二.用途 日志记录,性能统计,安全控制,权限管理,事务处理,异常处理,资源池管理. 三.详解 注意:代码请见下篇博文 1. 切面(Aspect) 官方的抽象定义为“一个关注点的模块