版权声明:本文为博主原创文章,未经博主允许不得转载。 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