AbstractAutowireCapableBeanFactory
整体这个类做的事情有:提供bean创建功能(通过构造器)、属性渲染,装配(包括自动装配)、初始化。处理运行时的bean引用,解析已经管理的结果、调用初始化方法。并且提供了自动装配的功能。
子类需要实现的方法主要是resolveDependency(DependencyDescriptor, String, Set, TypeConverter)
, 此方法用于实现按类型匹配的自动装配,依赖解析成bean。此类没有实现bean definition 注册功能,需要子类来完成。
此类的构造方法会导致BeanNameAware、BeanFactoryAware、BeanClassLoaderAware类型的依赖无法被解析(调用方法this.ignoredDependencyInterfaces.add(typeToIgnore);)
private InstantiationStrategy instantiationStrategy = new CglibSubclassingInstantiationStrategy();
CglibSubclassingInstantiationStrategy是默认bean创建策略,CglibSubclassingInstantiationStrategy需要一个cglib包,如果没有也可以正常运行,因为,只有当方法注入需要生成子