阅读背景:

用户日志留存所采用的技术手段

来源:互联网 

首先写个注解类,用来标识方法满足切入点

package com.enation.framework.database;
import java.lang.annotation.Documented;  
import java.lang.annotation.ElementType;  
import java.lang.annotation.Retention;  
import java.lang.annotation.RetentionPolicy;  
import java.lang.annotation.Target;  
  
/** 
 * 表示对标记有xxx注解的类,做代理 注解@Retention可以用来修饰注解,是注解的注解,称为元注解。 
 * Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型, 
 * 这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 
 * RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE 
 * 用@Retention(RetentionPolicy 
 * .CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候; 
 * 用@Retention(RetentionPolicy.SOURCE 
 * )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中; 
 * 用@Retention(RetentionPolicy.RUNTIME 
 * )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时, 
 * 所以他们可以用反射的方式读取。RetentionPolicy.RUNTIME 
 * 可以让你从JVM中读取Annotation注解的信息,以便在分析程序的时候使用. 
 *  
 * 类和方法的annotation缺省情况下是不出现在javadoc中的,为了加入这个性质我们用@Documented 
 *  java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。 
 *  @interface是一个关键字,在设计annotations的时候必须把一个类型定义为@interface,而不能用class或interface关键字  
 *  
 * @author daizequn
 *  
 */  
  
@Target({ ElementType.METHOD, ElementType.TYPE })  
@Retention(RetentionPolicy.RUNTIME)  
@Documented  
public @interface MethodLog {  
    String remark() default "";  
    String operType() default "0";     
   // String desc() default "";  
}  
package com.enation.f



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: