自定义注解
package com.asiainfo.group.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD, ElementType.TYPE})
@Inherited
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface RecordLog {
//是否记日志
public boolean isRecord();
//日志内容
public String content() default "执行";
}
使用自定义注解
package com.asiainfo.group.annotation;
public class AnnotationDemo {
@RecordLog(isRecord=true,content="保存用户")
public void saveUser() throws Exception{
//以下代码是获取方法注解的属性值,可以做成一个切面,而不必写在方法里
Class c=AnnotationDemo.class;
RecordLog r = c.getMethod("saveUser").getAnnotation(RecordLog.class);
boolean b = r.isRecord();
String content = r.content();
System.err.println(b);
System.err.println(content);
}
public static void main(String[] args) {
try {
new AnnotationDemo().saveUser();
} catch (Exception e) {
e.printStackTrace();
}
}
}