AutowireCapableBeanFactory实现了BeanFactory接口,负责bean生命周期的管理。咱们先看看几个常量segmentfault
int AUTOWIRE_NO = 0;//表示没有外部定义的自动装配 int AUTOWIRE_BY_NAME = 1;//经过名称指示自动装配bean属性(适用于Bean全部属性的setter) int AUTOWIRE_BY_TYPE = 2;//经过类型指示自动装配bean属性(适用于Bean全部属性的setter) int AUTOWIRE_CONSTRUCTOR = 3;//构造函数 int AUTOWIRE_AUTODETECT = 4;//经过bean类的内省肯定适当的自动装配策略,已弃用 String ORIGINAL_INSTANCE_SUFFIX = ".ORIGINAL";//用于没有代理的时候,也能强制返回实例
bean的建立app
//autowireMode就是上面的常量,dependencyCheck是否对依赖进行检查 Object createBean(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException; <T> T createBean(Class<T> beanClass) throws BeansException;
bean的初始化函数
Object initializeBean(Object existingBean, String beanName) throws BeansException;
bean的后置处理器ui
Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException; Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) throws BeansException;
bean的销毁spa
void destroyBean(Object existingBean);
自动装配bean代理
Object autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException; void autowireBean(Object existingBean) throws BeansException; void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException;
配置beancode
Object configureBean(Object existingBean, String beanName) throws BeansException;
解析beanblog
Object resolveBeanByName(String name, DependencyDescriptor descriptor) throws BeansException; Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName) throws BeansException; Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName, @Nullable Set<String> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException; <T> NamedBeanHolder<T> resolveNamedBean(Class<T> requiredType) throws BeansException;