zoukankan      html  css  js  c++  java
  • spring aop 中的JoinPoint

    AspectJ使用org.aspectj.lang.JoinPoint接口表示目标类连接点对象,如果是环绕增强时,使用org.aspectj.lang.ProceedingJoinPoint表示连接点对象,该类是JoinPoint的子接口。任何一个增强方法都可以通过将第一个入参声明为JoinPoint访问到连接点上下文的信息。我们先来了解一下这两个接口的主要方法: 

    1)JoinPoint 
      java.lang.Object[] getArgs():获取连接点方法运行时的入参列表; 
      Signature getSignature() :获取连接点的方法签名对象; 
      java.lang.Object getTarget() :获取连接点所在的目标对象; 
      java.lang.Object getThis() :获取代理对象本身; 

    2)ProceedingJoinPoint 
      ProceedingJoinPoint继承JoinPoint子接口,它新增了两个用于执行连接点方法的方法: 
      java.lang.Object proceed() throws java.lang.Throwable:通过反射执行目标对象的连接点处的方法; 
      java.lang.Object proceed(java.lang.Object[] args) throws java.lang.Throwable:通过反射执行目标对象连接点处的方法,不过使用新的入参替换原来的入参。 

    我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动传入,从JoinPoint中可以取得。

  • 相关阅读:
    Python基础之函数与装饰器
    Python基础(字符编码与文件处理)
    周末练习(一)
    字典(习题)
    IOS代码库
    (转载)二叉树
    单链表的初始化和创建(尾插法)
    (转载)C语言单链表实现19个功能完全详解
    (转载)ios view的frame和bounds之区别(位置和大小)
    (转载)OC语法总结
  • 原文地址:https://www.cnblogs.com/panchanggui/p/10762666.html
Copyright © 2011-2022 走看看