美文网首页
Spring 源码分析之二:Spring Beans模块分析

Spring 源码分析之二:Spring Beans模块分析

作者: 火焰神 | 来源:发表于2019-10-15 16:02 被阅读0次

    一、概述

    打开spring-beans.gradle,可以看到spring-beans模块只依赖spring-core模块,因此我们第二个先分析这个模块。
    通过package-info.java,我们可以得知:This package contains interfaces and classes for manipulating Java beans. 意思就是这个目录包含了一些接口和类,用来控制Java bean。

    二、目录分析

    2.1)根目录
    主要是bean属性访问相关的接口和类
    2.2)annotation目录
    无内容
    2.3)factory目录
    主要是Aware接口、BeanFactory接口以及其子接口,Aware有3个子接口:BeanNameAware、BeanFactoryAware、BeanClassLoadAware,Aware结尾的接口功能,请自行百度。BeanFactory体系是最重要的,需要后面专题来讲。
    2.4)Factory/config目录
    非常重要!!!包含BeanDefinition、BeanPostProcessor、ConfigurableBeanFactory、ConfigurableListableBeanFactory
    2.5)Factory/support目录
    作用:Factory目录的支持类,抽象工厂、BeanDefinition的读取、注册、回调,自动发现。
    包含AutowireCandidateResolver、BeanDefinitionReader、BeanDefinitionRegistry、BeanDefinitionRegistryPostProcessor、BeanNameGenerator、InstantiationStrategy、MergedBeanDefinitionPostProcessor以及他们相应的抽象类、帮助类。
    2.6)Factory/xml目录
    对xml格式定义的bean读取、处理。

    二、详细分析

    2.1)重要的接口
    PropertyEditorRegistry:封装了PropertyEditor的注册方法
    PropertyAccessor:属性访问器,可以访问对象的
    TypeConverter:类型转换,会委托给TypeConverterDelegate类去做,方法内会利用core模块的ConversionService去进行转换。上一篇文章我们提到过这个。
    ConfigurablePropertyAccessor:封装了可以配置PropertyAccessor的接口
    BeanWrapper:Spring底层Java Beans基础设施的中心接口。父类是ConfigurablePropertyAccessor,唯一的实现类:BeanWrapperImpl
    PropertyValues:持有一个或者多个PropertyValue对象,
    2.2)重要的类
    AbstractPropertyAccessor:
    PropertyValue:包含一个属性的名字和一个值
    BeanWrapperImpl:
    2.3)异常相关
    我们这里不关注bean的异常体系,不是重点。

    相关文章

      网友评论

          本文标题:Spring 源码分析之二:Spring Beans模块分析

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