天天看点

spring源码--IOC容器的实现:概述(2)引言

引言

上一篇分析了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 是对实体类的简单封装,让每个实体类有一个对应的名字

    spring源码--IOC容器的实现:概述(2)引言
  • Object AutowireCapableBeanFactory .resolveDependency(DependencyDescriptor descriptor, String requestingBeanName) throws BeansException;

    DependencyDescriptor 封装了依赖注入的相关信息,包括需要被注入的属性名称,被注入的class,是否是懒注入等等。

    spring源码--IOC容器的实现:概述(2)引言
    TypeConverter 是个接口,负责将值转换为特定类型
    spring源码--IOC容器的实现:概述(2)引言
  • void ConfigurableBeanFactory .setBeanExpressionResolver(BeanExpressionResolver resolver);

    BeanExpressionResolver 是将el表达式转换为值得接口,该接口只有一个方法

    spring源码--IOC容器的实现:概述(2)引言
  • 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<?> listener);

    ApplicationListener 容器的监听器。

以上是上篇接口中出现的相关实体类。

继续阅读