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
;
/*
*
初始化一个
Bean...
*/
Object
initializeBean
(
Object
existingBean
,
String
beanName
)
throws
BeansException
;
/*
*
初始化之前执行
BeanPostProcessors
*/
Object
applyBeanPostProcessorsBeforeInitialization
(
Object
existingBean
,
String
beanName
)
throws
BeansException
;
/*
*
初始化之后执行
BeanPostProcessors
*/
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
、执行前、后处理器等。