自定义注解
1.@Target
ElementType.TYPE 类 接口(包括注解类型)枚举
ElementType.FIELD 属性(包括枚举中的常量)
ElementType.METHOD 方法
ElementType.PARAMETER 形参
ElementType.CONSTRUCTOR 构造函数
ElementType.LOCAL_VARIABLE 局部变量
ElementType.ANNOTATION_TYPE 注解类型
ElementType.PACKAGE 包
2.@Retention
RetentionPolicy.SOURCE 编译时被丢弃,不包含在类文件中
RetentionPolicy.CLASS JVM加载时被丢弃,包含在类文件中
RetentionPolicy.RUNTIME JVM 加载,包含在类文件中,在运行时可以被获取到
3.单机版配合反射
4.web版配合spring-aop
Aspect Pointcut
5.应用场景
对比同一个字段新旧值进行记录(包含字段汉字(比如姓名 年龄等注释))
自定义注解+拦截器(HandlerInterceptor) 实现登录校验–>反射
自定义注解+AOP 实现操作日志入库–>Aspect Pointcut