先定义一个注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Visit {
}
其中的Target表示注解作用的范围,ElementType的取值有
- CONSTRUCTOR: 用于描述构造器
- FIELD: 用于描述域
- LOCAL_VARIABLE: 用于描述局部变量
- METHOD: 用于描述方法
- PACKAGE: 用于描述包
- PARAMETER: 用于描述参数
TYPE: 用于描述类、接口 (包括注解类型) 或 enum 声明
把注解放到特定的位置(类、方法或者其他)
放到类上
aop切入点设置
@Pointcut("@within(com.etoak.anno.Visit)")
public void visit(){
}
放到方法上
@Pointcut("@annotation(com.etoak.anno.Visit)")
public void visit(){
}
总结
@within 使用在注解作用于对象上
@annotation 使用在注解作用于方法上