Spring框架之IoC容器—AutowireCapableBeanFactory接口
2017-10-27 17:12
423 查看
一、AutowireCapableBeanFactory简介
AutowireCapableBeanFactory是BeanFactory接口的扩展,由那些能够实现自动匹配的Bean工厂来实现(但没被ApplicationContext实现),提供针对已存在Bean实例的服务。通常情况下,AutowireCapableBeanFactory接口不用于应用程序代码。通过ApplicationContext的getAutowireCapableBeanFactory方法就很容易访问该接口,也可通过实现BeanFactoryAware(通过它当运行在ApplicationContext暴露内部BeanFactory接口的功能访问AutowireCapableBeanFactory,仅仅需要将BeanFactory转换为AutowireCapableBeanFactory)。
整合其他框架的代码是此接口优势所在,它可以连接和填充那些生命周期不被Spring管理的已存在的bean实例。
二、AutowireCapableBeanFactory源码详解
public interface AutowireCapableBeanFactory extends BeanFactory { /** * 表示不进行自动装配 */ int AUTOWIRE_NO = 0; /** * 表示通过Bean名称进行自动装配 */ int AUTOWIRE_BY_NAME = 1; /** * 表示通过Bean类型进行自动装配 */ int AUTOWIRE_BY_TYPE = 2; /** * 表示通过构造函数进行自动装配 */ int AUTOWIRE_CONSTRUCTOR = 3; /** * 表示自动选择适当匹配策略 */ int AUTOWIRE_AUTODETECT = 4; //------------------------------------------------------------------------- // 典型的创建和填充外部Bean实例的方法 //------------------------------------------------------------------------- /** * 根据指定类型创建Bean实例 */ <T> T createBean(Class<T> beanClass) throws BeansException; /** * */ void autowireBean(Object existingBean) throws BeansException; /** * */ Object configureBean(Object existingBean, String beanName) throws BeansException; /** * */ Object resolveDependency(DependencyDescriptor descriptor, String beanName) throws BeansException; //------------------------------------------------------------------------- // Bean生命周期中细粒度控制的特殊方法 //------------------------------------------------------------------------- /** * */ Object createBean(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException; /** * */ Object autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException; /** * */ void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException; /** * */ void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException; /** * */ Object initializeBean(Object existingBean, String beanName) throws BeansException; /** * */ Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) throws BeansException; /** * */ Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException; /** * */ void destroyBean(Object existingBean); /** * */ Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set<String> autowiredBeanNames, TypeConverter typeConverter) throws BeansException; }
相关文章推荐
- Spring框架之IoC容器—ConfigurableListableBeanFactory接口
- 【Spring学习笔记】Spring框架的IoC容器学习笔记
- Spring框架及IOC容器
- Spring框架参考文档-核心技术-IoC容器
- spring框架 使用注解方式将bean加入ioc容器的问题:BeanDefinitionStoreException
- Spring框架-IOC容器和Bean的配置(1)
- Spring框架IOC容器和AOP解析
- spring框架的学习-IOC容器(二)
- 深入理解Java的Spring框架中的IOC容器
- Spring框架IOC容器
- 浅析Java的Spring框架中IOC容器容器的应用
- Spring框架IOC容器和AOP解析
- Spring框架之IoC容器—BeanFactory接口
- 【spring框架】(二)控制反转(IOC)容器
- Spring框架IoC容器的实现类 BeanFactory 和 ApplicationContext 的区别
- 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十)
- 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十)
- Spring框架介绍和IoC容器中Bean配置(Spring框架)
- Spring框架之IoC容器—ListableBeanFactory接口
- (三)Spring框架——IoC容器