Spring框架解析注解
Spring框架中提供了两种解析注解(Annotation)的方式,一种使用ASM;一种使用反射
ASM方式:
操作字节码文件。比如以
Set<String> getAnnotationTypes()
为例,会直接返回annotationSet。
而annotationSet的更新是通过ASM解析字节码文件并回调visitAnnotation()方法完成,
反射方式:
getAnnotationTypes()会先调用getAnnotations()获取mergedAnnotations
一路跟踪mergedAnnotations的实例化代码以及get方法,可以看到Class,也就是使用反射实现。
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己
-- 共勉