美文网首页
SpringFramework源码学习-扫描

SpringFramework源码学习-扫描

作者: Rena的秘密 | 来源:发表于2022-11-01 17:08 被阅读0次

    一.扫描返回包路径下的候选的BeanDefinition(有@Componet注解的类)

    1.1 从包路径下获取所有的.class文件

    1.2遍历每个Resource对象

    1.3利用MetadataReaderFactory解析resource得到MetadataReader对象

    1.4利用MetadataReader进行excludeFilter和includeFilter过滤,以及@Conditional条件注解的筛选符合条件的类信息,生成ScannerGenericBeanDefinition

    1.5再根据MetadataReader判断这个类是否是抽象类或者接口,如果不是就加入候选的结果集中。

    二.遍历候选的BeanDefinition

    2.1.获取ScopeMetadata从而获取到BeanDefinition的Scope数据。

    2.2获取MetadataReader从而获取到类的信息,包括类名、父类的名字、所实现的接口名字、内部类的名字、判断是否是抽象类、判断是否是接口、判断是是不是一个注解、所有注解信息等。

    2.3检查spring容器中是否存在当前beanName,如果不存在则把BeanDefinition注册进入spring容器。

    相关文章

      网友评论

          本文标题:SpringFramework源码学习-扫描

          本文链接:https://www.haomeiwen.com/subject/qpbxtdtx.html