public interface AutowireCapableBeanFactory extends BeanFactory {
// 这个常量表明工厂没有自动装配的 Bean int AUTOWIRE_NO = 0 ; // 表明根据名称自动装配 int AUTOWIRE_BY_NAME = 1 ; // 表明根据类型自动装配 int AUTOWIRE_BY_TYPE = 2 ; // 表明根据构造方法快速装配 int AUTOWIRE_ConSTRUCTOR = 3 ; // 表明通过 Bean 的 class 的内部来自动装配(有没翻译错 ... ) Spring3.0 被弃用。 @Deprecated int AUTOWIRE_AUTODETECT = 4 ; // 根据指定 Class 创建一个全新的 Bean 实例 < T > T createBean ( Class < T > beanClass ) throws BeansException ; // 给定对象,根据注释、后处理器等,进行自动装配 void autowireBean ( Object existingBean ) throws BeansException ; // 根据 Bean 名的 BeanDefinition 装配这个未加工的 Object ,执行回调和各种后处理器。 Object configureBean ( Object existingBean , String beanName ) throws BeansException ; // 分解 Bean 在工厂中定义的这个指定的依赖 descriptor 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 ; Object resolveDependency ( DependencyDescriptor descriptor , String beanName , Set < String > autowiredBeanNames , TypeConverter typeConverter ) throws BeansException ; } Version:0.9 StartHTML:0000000105 EndHTML:0000002667 StartFragment:0000000141 EndFragment:0000002627 1. 总共 5 个静态不可变常量来指明装配策略,其中一个常量被 Spring3.0 废弃、一个常量表示没有自动 装配,另外 3 个常量指明不同的装配策略 —— 根据名称、根据类型、根据构造方法。 2. 8 个跟自动装配有关的方法,实在是繁杂,具体的意义我们研究类的时候再分辨吧。 3. 2 个执行 BeanPostProcessors 的方法。 4. 2 个分解指定依赖的方法 这个工厂接口继承自 BeanFacotory ,它扩展了自动装配的功能,根据类定义 BeanDefinition 装配 Bean 、执行前、后处理器等。


