spring-BeanFactory接口
===================================================================
分析AutowireCapableBeanFactory接口
public interface AutowireCapableBeanFactory extends BeanFactory {
//不用自动注入
int AUTOWIRE_NO = 0;
//name注入
int AUTOWIRE_BY_NAME = 1;
//type注入
int AUTOWIRE_BY_TYPE = 2;
//构造器注入
int AUTOWIRE_CONSTRUCTOR = 3;
//通过Bean的class的内部来自动装配已经被废弃了,不关注
@Deprecated
int AUTOWIRE_AUTODETECT = 4;
//创建bean,通过class对象
<T> T createBean(Class<T> beanClass) throws BeansException;
//通过提供的after-instantiation填充bean实例对象
void autowireBean(Object existingBean) throws BeansException;
Object configureBean(Object existingBean, String beanName) throws BeansException;
//创建bean
Object createBean(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException;
//用指定的autowire策略实例化给定类的新bean实例
Object autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException;
//按名称或类型自动填充给定bean实例的bean属性
void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck)
throws BeansException;
void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException;
//初始化bean
Object initializeBean(Object existingBean, String beanName) throws BeansException;
//提供所有的后处理器,也就是执行bean后处理器postProcessBeforerInitialization
Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName)
throws BeansException;
////提供所有的后处理器,也就是执行bean后处理器postProcessAfterInitialization
Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName)
throws BeansException;
//销毁给定的bean
void destroyBean(Object existingBean);
//解析
<T> NamedBeanHolder<T> resolveNamedBean(Class<T> requiredType) throws BeansException;
//根据此工厂中定义的bean解析指定的依赖关系。
@Nullable
Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName) throws BeansException;
@Nullable
Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName,
@Nullable Set<String> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。