Spring框架ASM字节码提升

ASM字节码提升流程

  • MetadataReader
    接口唯一内部实现类 SimpleMetadataReader 门面接口访问元信息
    由工厂类SimpleMetadataReaderFactory产生 工厂模式
    读取通过ASM来自ClassReader解析器,得到ClassMetadata元数据

  • SimpleMetadataReader:门面设计接口,可以得到元信息 门面模式
    org.springframework.core.type.classreading.MetadataReader#getAnnotationMetadata
    由访问者对象中的org.springframework.core.type.classreading.SimpleAnnotationMetadataReadingVisitor创建

  • ClassReader字节码文件解析器 访问者模式
    resource-》ClassReader#accept()-》SimpleAnnotationMetadataReadingVisitor#visit创建AnnotationMetadata的实例

  • StandardAnnotationMetadata(StandardClassMetadata) 通过反射获得的元信息

posted @ 2020-10-26 17:22  windlog  阅读(319)  评论(0编辑  收藏  举报