Joinpoint
aopalliance1.0.jar 和 aopalliance-1.0-sources.jar源码包中 类不一致。发行jar中没有 FieldAccess。
Joinpoint有两个继承实现FieldAccess 和 Invocation。
Invocation
Invocation 运行时的 方法调用
/**
* This interface represents an invocation in the program.
*此接口表示程序中一个调用
* <p>An invocation is a joinpoint and can be intercepted by an
* interceptor.
*
* @author Rod Johnson */
public interface Invocation extends Joinpoint {
/**
* Get the arguments as an array object.
* It is possible to change element values within this
* array to change the arguments.
*获取方法调用的所有参数存储中数组对象中
*可以改变上述数组中元素值从而改变方法传入的参数
* @return the argument of the invocation */
Object[] getArguments();
}
Invocation 有两个继承的子接口:ConstructorInvocation和MethodInvocation。
/**
* Description of an invocation to a constuctor, given to an
* interceptor upon construtor-call.
* 此接口是对构造器调用的描述,使用此构造器运行时调用描述 ,拦截器可以拦截到构造器调用。
* <p>A constructor invocation is a joinpoint and can be intercepted
* by a constructor interceptor.
*
* @see ConstructorInterceptor */
public interface ConstructorInvocation extends Invocation {
/**
* Gets the constructor being called.
*获取 被调用的构造器
* <p>This method is a frienly implementation of the {@link
* Joinpoint#getStaticPart()} method (same result).
*
* @return the constructor being called. */
Constructor getConstructor();
}
import java.lang.reflect.Method;
/**
* Description of an invocation to a method, given to an interceptor
* upon method-call.
* 此接口是方法调用的描述,使用此方法调用运行时调用描述 ,拦截器可以拦截到方法调用。
* <p>A method invocation is a joinpoint and can be intercepted by a method
* interceptor.
*
* @see MethodInterceptor */
public interface MethodInvocation extends Invocation
{
/**
* Gets the method being called.
*获取 被调用的方法
* <p>This method is a frienly implementation of the {@link
* Joinpoint#getStaticPart()} method (same result).
*
* @return the method being called.
*/
Method getMethod();
}
FieldAccess
域访问、字段属性的访问。
/**
* This interface represents a field access in the program.
*
* <p>A field access is a joinpoint and can be intercepted by a field
* interceptor.
* 域访问 joinpoint 可以被 field拦截器拦截
* @see FieldInterceptor */
public interface FieldAccess extends Joinpoint {
/** The read access type (see {@link #getAccessType()}). */
int READ=0;
/** The write access type (see {@link #getAccessType()}). */
int WRITE=1;
/**
* Gets the field being accessed.
*返回 被访问的 field
* <p>This method is a frienly implementation of the {@link
* Joinpoint#getStaticPart()} method (same result).
*此方法是{@link Joinpoint#getStaticPart()}方法的友好(frienly 应为 friendly)实现
* @return the field being accessed. */
Field getField();
/**
* Gets the value that must be set to the field.
*获取设置到field的值
* <p>This value can be intercepted and changed by a field
* interceptor. 值可以被field拦截器拦截和改变*/
Object getValueToSet();
/**
* Returns the access type.
*
* @return FieldAccess.READ || FieldAccess.WRITE */
int getAccessType();
}