public interface AutowireCapableBeanFactory extends BeanFactory {
int AUTOWIRE_NO = 0;
int AUTOWIRE_BY_NAME = 1;
int AUTOWIRE_BY_TYPE = 2;
int AUTOWIRE_ConSTRUCTOR = 3;
@Deprecated
int AUTOWIRE_AUTODETECT = 4;
String ORIGINAL_INSTANCE_SUFFIX = ".ORIGINAL";
//-------------------------------------------------------------------------
// Typical methods for creating and populating external bean instances
//-------------------------------------------------------------------------
T createBean(Class beanClass) throws BeansException;
void autowireBean(Object existingBean) throws BeansException;
Object configureBean(Object existingBean, String beanName) throws BeansException;
//-------------------------------------------------------------------------
// Specialized methods for fine-grained control over the bean lifecycle
//-------------------------------------------------------------------------
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;
void destroyBean(Object existingBean);
//-------------------------------------------------------------------------
// Delegate methods for resolving injection points
//-------------------------------------------------------------------------
NamedBeanHolder resolveNamedBean(Class requiredType) throws BeansException;
Object resolveBeanByName(String name, DependencyDescriptor descriptor) throws BeansException;
@Nullable
Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName) throws BeansException;
@Nullable
Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName,
@Nullable Set autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException;
}
主要方法
| 方法名 | 含义 |
|---|
| T createBean(Class beanClass) | 履行 bean 的完整初始化,包括所有可用的 BeanPostProcessors |
| void autowireBean(Object existingBean) | 通过在完成 bean 的实例化之后去填充 bean , 以及执行 post-processing |
| Object configureBean(Object existingBean, String beanName) | 配置给定的原始 bean,自动注入 bean 属性,请求 bean 的属性值请求工厂的回调,例如 setBeanName 和 setBeanFactory |
| Object createBean(Class> beanClass, int autowireMode, boolean dependencyCheck) | 对于指定的自动装配策略去创建一个完整的新的 bean 实例 |
| Object autowire(Class> beanClass, int autowireMode, boolean dependencyCheck) | 对与给定的 class 与 指定的注入策略,创建一个新的 bean 实例 |
| void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) | 凭借名字或类型自动注入给定 bean 实例的 bean 属性 |