Spring框架中提供了两种解析注解(Annotation)的方式,一种使用ASM;一种使用反射

ASM方式:
操作字节码文件。比如以
Set<String> getAnnotationTypes()
为例,会直接返回annotationSet。

而annotationSet的更新是通过ASM解析字节码文件并回调visitAnnotation()方法完成,

反射方式:
getAnnotationTypes()会先调用getAnnotations()获取mergedAnnotations

一路跟踪mergedAnnotations的实例化代码以及get方法,可以看到Class,也就是使用反射实现。
