Spring源码分析-IOC之AutowireCapableBeanFactory
2019-04-01 21:04
232 查看
AutowireCapableBeanFactory继承自BeanFactory,具有BeanFactory的功能以外,提供创建bean,自动注入,初始化以及应用bean的后置处理,我们来分析下具体的源码:
[code]public interface AutowireCapableBeanFactory extends BeanFactory { /** * Constant that indicates no externally defined autowiring. Note that * BeanFactoryAware etc and annotation-driven injection will still be applied. * @see #createBean * @see #autowire * @see #autowireBeanProperties */ //表明没有自动装配的bean int AUTOWIRE_NO = 0; //根据名称自动装配bean int AUTOWIRE_BY_NAME = 1; //根据类型自动装配bean int AUTOWIRE_BY_TYPE = 2; //根据构造器自动装配bean int AUTOWIRE_CONSTRUCTOR = 3; //通过class的内部来自动装配bean //已经被启用 @Deprecated int AUTOWIRE_AUTODETECT = 4; //------------------------------------------------------------------------- // Typical methods for creating and populating external bean instances //------------------------------------------------------------------------- //根据给定的class创建bean <T> T createBean(Class<T> beanClass) throws BeansException; //通过调用给定Bean的after-instantiation及post-processing接口,对bean进行配置。 void autowireBean(Object existingBean) throws BeansException; // 配置参数中指定的bean,包括自动装配其域,对其应用如setBeanName功能的回调函数。 Object configureBean(Object existingBean, String beanName) throws BeansException; //解析出在Factory中与指定Bean有指定依赖关系的Bean Object resolveDependency(DependencyDescriptor descriptor, String beanName) throws BeansException; // 创建一个指定class的实例,通过参数可以指定其自动装配模式(by-name or by-type). Object createBean(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException; //通过指定的自动装配策略来初始化一个Bean。 Object autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException; // 通过指定的自动装配方式来对给定的Bean进行自动装配 void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException; //将参数中指定了那么的Bean,注入给定实例当中 void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException; //初始化参数中指定的Bean,调用任何其注册的回调函数如setBeanName、setBeanFactory等。 Object initializeBean(Object existingBean, String beanName) throws BeansException; //调用参数中指定Bean的postProcessBeforeInitialization方法 Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) throws BeansException; // 调用参数中指定Bean的postProcessAfterInitialization方法 Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException; //销毁参数中指定的Bean void destroyBean(Object existingBean); //解析指定Bean在Factory中的依赖关系 Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set<String> autowiredBeanNames, TypeConverter typeConverter) throws BeansException; }
对于想要拥有自动装配能力,并且想要把这种能力暴露给外部应用BeanFactory类需要实现此接口。
相关文章推荐
- spring源码--BeanFactory、AutowireCapableBeanFactory、HierarchicalBeanFactory、ListableBeanFactory...
- spring源码--BeanFactory、AutowireCapableBeanFactory、HierarchicalBeanFactory、ListableBeanFactory...
- Spring源码之AbstractAutowireCapableBeanFactory
- Spring Ioc创建之BeanFactory创建源码分析
- 分析Spring IoC源码(二)BeanFactory初始化
- [spring源码学习]六、IOC源码-BeanFactory和factory-bean
- 2、Spring的LocalSessionFactoryBean创建过程源码分析
- spring AutowireCapableBeanFactory 自动注入
- 浅析Spring AOP源码(十四) 分析ProxyFactoryBean
- Spring Ioc 源码分析之Bean的加载和构造
- Spring源码-IOC容器(四)-FactoryBean
- 浅析Spring IoC源码(七)浅谈BeanFactory和FactoryBean
- Spring IOC 容器源码分析 - 创建单例 bean 的过程
- 做一个合格的程序猿之浅析Spring IoC源码(七)浅谈BeanFactory和FactoryBean
- Spring中AutowireCapableBeanFactory的使用
- Spring IOC容器bean初始化源码分析
- spring 核心与源码解析(1):IoC之BeanFactory
- Spring源码学习-1.IOC-DefaultListableBeanFactory
- Spring源码分析——BeanFactory体系之接口详细分析
- Spring -- 源码分析 -- XmlBeanFactory(。。。未完待续)