java自定义注解实现记日志功能

 自定义注解

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();
		}
	}
}
发布了89 篇原创文章 · 获赞 67 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/xl_1803/article/details/100583043