spring源码阅读(一)--IOC容器的实现:概述(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdasd3418/article/details/80653571

引言

上一篇分析了springIOC相关的核心接口,下面分析一下这些接口中用到的一些相关的类。

  • boolean BeanFactory .isTypeMatch(String name, ResolvableType typeToMatch)
    ResolvableType 可以看做spring对class类的增强,提供了一些spring需要的一些方法。比如:
    – boolean isAssignableFrom():判断是否是某个指定类型的附列
    – ResovableType getSuperType() : 获取父类的类型
    ….
    另外提供了一些静态方法,方便初始化
    – static ResovableType forClass();
    – static ResovableType forField();
  • NamedBeanHolder AutowireCapableBeanFactory .resolveNamedBean(Class requiredType)
    NamedBeanHolder 是对实体类的简单封装,让每个实体类有一个对应的名字
    这里写图片描述

  • Object AutowireCapableBeanFactory .resolveDependency(DependencyDescriptor descriptor, String requestingBeanName) throws BeansException;
    DependencyDescriptor 封装了依赖注入的相关信息,包括需要被注入的属性名称,被注入的class,是否是懒注入等等。
    这里写图片描述
    TypeConverter 是个接口,负责将值转换为特定类型
    这里写图片描述

  • void ConfigurableBeanFactory .setBeanExpressionResolver(BeanExpressionResolver resolver);
    BeanExpressionResolver 是将el表达式转换为值得接口,该接口只有一个方法
    这里写图片描述
  • void ConfigurableBeanFactory .setConversionService(ConversionService conversionService);
    ConversionService 将指定类型转换为特定类型
  • void ConfigurableBeanFactory .registerCustomEditor(Class requiredType, Class< ? extends PropertyEditor> propertyEditorClass);
    PropertyEditor 属性编辑器,配合TypeConverter 和 ConversionService 来对spring容器里的bean进行属性赋值。
  • void ConfigurableBeanFactory .addEmbeddedValueResolver(StringValueResolver valueResolver);
    StringValueResolver 解析String类型的值,比如解析placeholders
  • void ConfigurableBeanFactory .addBeanPostProcessor(BeanPostProcessor beanPostProcessor);
    BeanPostProcessor 是个重要的接口,赋值bean的后置处理,之后会详细分析。
  • Resource ResourceLoader .getResource(String location);
    Resource 封装了spring资源文件的相关信息,比如路径,输入流等。
  • Environment EnvironmentCapable .getEnvironment();
    Environment 封装了环境信息,包括Profile
  • void ApplicationEventPublisher .publishEvent(ApplicationEvent event);
    ApplicationEvent 是容器发送各种事件的父接口,比如容器刷新事件。
  • void ConfigurableApplicationContext .setEnvironment(ConfigurableEnvironment environment);
    ConfigurableEnvironment 继承Environment,提供了设置profile的set,以及获取的get方法,另外提供了一些新的方法。
  • void ConfigurableApplicationContext .addBeanFactoryPostProcessor(BeanFactoryPostProcessor beanFactoryPostProcessor);
    BeanFactoryPostProcessor beanFactory的后置处理器,很重要的接口。之后详细分析
  • void ConfigurableApplicationContext .addApplicationListener(ApplicationListener

猜你喜欢

转载自blog.csdn.net/asdasd3418/article/details/80653571