public interface ConfigurableBeanFactory extends HierarchicalBeanFactory,
SingletonBeanRegistry
{
String
SCOPE_SINGLETON
=
"singleton"
;
//
单例
String
SCOPE_PROTOTYPE
=
"prototype"
;
//
原型
/*
*
搭配
HierarchicalBeanFactory
接口的
getParentBeanFactory
方法
*/
void
setParentBeanFactory
(
BeanFactory parentBeanFactory
)
throws
IllegalStateException
;
/*
*
设置、返回工厂的类加载器
*/
void
setBeanClassLoader
(
ClassLoader beanClassLoader
);
Version:0.9 StartHTML:0000000105 EndHTML:0000044267 StartFragment:0000000141 EndFragment:0000044227
ClassLoader getBeanClassLoader
();
/*
*
设置、返回一个临时的类加载器
*/
void
setTempClassLoader
(
ClassLoader tempClassLoader
);
ClassLoader getTempClassLoader
();
/*
*
设置、是否缓存元数据,如果
false
,那么每次请求实例,都会从类加载器重新加载(热加
载)
*/
void
setCacheBeanMetadata
(
boolean
cacheBeanMetadata
);
boolean
isCacheBeanMetadata
();
//
是否缓存元数据
/*
* Bean
表达式分解器
*/
void
setBeanExpressionResolver
(
BeanExpressionResolver resolver
);
BeanExpressionResolver getBeanExpressionResolver
();
/*
*
设置、返回一个转换服务
*/
void
setConversionService
(
ConversionService conversionService
);
ConversionService getConversionService
();
/*
*
设置属性编辑登记员
...
*/
void
addPropertyEditorRegistrar
(
PropertyEditorRegistrar registrar
);
/*
*
注册常用属性编辑器
*/
void
registerCustomEditor
(
Class
<?>
requiredType
,
Class
<?
extends
PropertyEditor
>
propertyEditorClass
);
/*
*
用工厂中注册的通用的编辑器初始化指定的属性编辑注册器
*/
void
copyRegisteredEditorsTo
(
PropertyEditorRegistry registry
);
/*
*
设置、得到一个类型转换器
*/
void
setTypeConverter
(
TypeConverter typeConverter
);
TypeConverter getTypeConverter
();
/*
*
增加一个嵌入式的
StringValueResolver
*/
void
addEmbeddedValueResolver
(
StringValueResolver valueResolver
);
String
resolveEmbeddedValue
(
String
value
);
//
分解指定的嵌入式的值
void
addBeanPostProcessor
(
BeanPostProcessor beanPostProcessor
);
//
设置一
个
Bean
后处理器
int
getBeanPostProcessorCount
();
//
返回
Bean
后处理器的数量
void
registerScope
(
String
scopeName
,
Scope scope
);
//
注册范围
String
[]
getRegisteredScopeNames
();
//
返回注册的范围名
Scope getRegisteredScope
(
String
scopeName
);
//
返回指定的范围
AccessControlContext getAccessControlContext
();
//
返回本工厂的一个安全访问上
下文
void
copyConfigurationFrom
(
ConfigurableBeanFactory otherFactory
);
//
从其
他的工厂复制相关的所有配置
/*
*
给指定的
Bean
注册别名
*/
void
registerAlias
(
String
beanName
,
String
alias
)
throws
BeanDefinitionStoreException
;
void
resolveAliases
(
StringValueResolver valueResolver
);
//
根据指定的
StringValueResolver
移除所有的别名
/*
*
返回指定
Bean
合并后的
Bean
定义
*/
BeanDefinition getMergedBeanDefinition
(
String
beanName
)
throws
NoSuchBeanDefinitionException
;
boolean
isFactoryBean
(
String
name
)
throws
NoSuchBeanDefinitionException
;
//
判断指定
Bean
是否为一个工厂
Bean
void
setCurrentlyInCreation
(
String
beanName
,
boolean
inCreation
);
//
设置
一个
Bean
是否正在创建
boolean
isCurrentlyInCreation
(
String
beanName
);
//
返回指定
Bean
是否已经成功
创建
void
registerDependentBean
(
String
beanName
,
String
dependentBeanName
);
//
注册一个依赖于指定
bean
的
Bean
String
[]
getDependentBeans
(
String
beanName
);
//
返回依赖于指定
Bean
的所欲
Bean
名
String
[]
getDependenciesForBean
(
String
beanName
);
//
返回指定
Bean
依赖的所有
Bean
名
void
destroyBean
(
String
beanName
,
Object
beanInstance
);
//
销毁指定的
Bean
void
destroyScopedBean
(
String
beanName
);
//
销毁指定的范围
Bean
void
destroySingletons
();
//
销毁所有的单例类
}