一、注解的生命周期
1、源码编译级别
生成class文件后被丢弃,例如@Override
2、class字节码级别
jvm加载class字节码到内存时丢弃,例如:@NotNull参数校验
3、内存字节码级别
在jvm运行字节码时一直存在,例如:@Resource
二、Spring自定义注解
1、定义一个注解
@Target 使用的地方,方法或者类
@Retention 生命周期,SOURCE/CLASS/RUNTIME
2、实现一个切面Aspect
@Aspect
@Component
@Pointcut
@Before @After @Around