AOP(3)
来源:互联网 发布:最新网络流行歌曲 编辑:程序博客网 时间:2024/06/06 15:47
切入点语法
切入点指示符
切入点指示符用来指示切入点表达式目的,Spring AOP目前只支持执行方法这一连接点
注意是AOP代理对象的类型匹配,这样就可能包括引入接口也类型匹配 target 用于匹配当前目标对象类型的执行方法;
注意是目标对象的类型匹配,这样就不包括引入接口也类型匹配 args 用于匹配,当前传入的参数为指定类型的执行方法 @target 用于匹配当前目标对象类型的执行方法。其中目标对象持有指定的注解 @within 用于匹配,所有持有指定注解类型内的方法 @args 用于匹配传入的参数持有指定注解的执行方法 @annotation 用于匹配当前执行方法持有指定注解的方法
命名切入点以及匿名切入点
命名切入点可以被其他切入点引用,而匿名切入点不可以
@AspectJ支持命名切入点,Schema风格不支持
@Pointcut(value="execution(public void com.dao.impl.StudentDaoImpl.*Student())") //命名切入点pointcut() public void pointcut() { }//引用命名切入点pointcut() @AfterReturning("pointcut()") public void afterReturning() { System.out.println("after"); }//引用命名切入点pointcut() @Before("pointcut()") public void before() { System.out.println("before"); }
类型匹配
-通配符
在类模式中匹配任何数量子包
在方法参数模式中匹配任何数量参数 + 匹配指定类型的子类型;仅能作为后缀放在类型模式后面
java.lang.annotation.Annotation java.lang.*ing 匹配java.lang包下以ing结尾的类型 java.lang.Number+ 匹配java.lang包下任何Number的子类型,如
java.lang.Integer;java.math.BigInteger
-匹配类型表达式
注解?类的全限定名字
-匹配方法表达式
注解?修饰符?返回值类型 类型声明?方法名(参数列表) 异常列表?
”(..)”表示接受任意个参数的方法
”(..,java.lang.String)”表示匹配接受以String类型的参数结束并且前面可以有任意个参数的方法
”(*,java.lang.String)”表示匹配接受以String类型的参数结束并且前面可以有任意一个参数的方法 异常列表 可选 “throw 异常全限定名列表”;多个异常则用”,”分隔,如:
“throws java.lang.IllegalArgumentException,…,…”
-组合切入点表达式
AspectJ使用&&、||、!来组合切入点表达式
Schema使用and、or、not
-切入点使用示例
一、execution:使用”execution(方法表达式)”匹配方法执行
二、within:使用“within(类型表达式)”匹配指定类型内的方法执行
三、this:使用“this(类型的全限定名)”匹配当前AOP代理对象类型的执行方法;注意是AOP代理对象的类型匹配,这样就可能包括引入接口方法也匹配;注意this中使用的表达式必须是类型全限定名,不支持通配符;
四、target:使用”target(类型全限定名)”匹配当前目标对象类型的执行方法;注意是目标对象的类型匹配,这样就不包括引入接口方法也匹配;注意target中使用的表达式必须是类型全限定名,不支持通配符;
五、args:使用“args(参数类型列表)”匹配当前执行的方法传入的参数属于指定类型的执行方法;注意传入的参数类型,不是匹配方法签名的参数类型;参数类型列表中的参数必须是类型全限定名,通配符不支持;args属于动态切入点,这种切入点开销大,最好不要使用
还有通知参数和通知顺序没写
附一个简单的例子
http://download.csdn.net/detail/bb10210521/9389382
0 0
- AOP(3)
- 3、AOP
- AOP入门 - 3 - AOP涉及到的基本概念
- Spring 3 AOP 0 AOP基础
- Spring 3 AOP 1 简单AOP
- spring AOP(3)
- spring基础知识3:aop
- 【Spring3】(3) AOP
- spring学习-3-AOP
- Spring4-3 AOP基础
- Spring AOP (3)
- Spring AOP(3)
- Spring基础-3-AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- hdu1087
- 数据结构 JAVA描述(六) 图的创建 (邻接矩阵+邻接表)
- jQuery学习--jQuery CSS 操作
- 备忘录实现过程
- com.google.protobuf.InvalidProtocolBufferException: Message missing required fields: callId, status
- AOP(3)
- mysql 查看binlog 操作日志及恢复数据
- 062 - Unique Paths
- 一张网页从meta标签开始
- POJ-2456Aggressive cows
- 5-4 BCD解密
- 初探CentOS搭建SVN服务器
- java集合:线性表
- angularjs指令link函数参数scope,指令controller依赖注入的$scope,与指令外部controller的$scope的关系