BeanFactory:定义获取bean及bean的各种属性
-
AutowireCapableBeanFactory 添加集成其他框架功能.如果集成WebWork则可以使用Spring对Actions等进行管理.
-
HierarchicalBeanFactory 提供父容器的访问功能
-
ConfigurableBeanFactory 如名,提供factory的配置功能,眼花缭乱好多api
-
ConfigurableListableBeanFactory 集大成者,提供解析,修改bean定义,并与初始化单例.
-
ListableBeanFactory 提供容器内bean实例的枚举功能.这边不会考虑父容器内的实例.
public interface BeanFactory {
//指定factoryBean的前缀,Bean工厂里面的实例任然有可能是一个BeanFactory,如果是个BeanFactory
//则可以通过如下方法返回一个BeanFactory,factory.getBean("&beanfactoryName");
String FACTORY_BEAN_PREFIX = "&";
//返回特定名字的实例
Object getBean(String name) throws BeansException;
//返回特定名称及特定类型的实例
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
//返回特定类型的bean实例,如果不存在或存在不止一个均报错
<T> T getBean(Class<T> requiredType) throws BeansException;
//根据名字及bean创建时候的参数创建bean
Object getBean(String name, Object... args) throws BeansException;
//根据特定的construct args创建prototype的bean
<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
//判断是否包含特定名字的实例
boolean containsBean(String name);
//判断是否是单例的
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
//判断是否是多例的
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
//判断特定名字的实例和对应的type是否匹配
boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;
//判断特定名字的实例和对应的type是否匹配
boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;
//返回特定名称bean的类型
Class<?> getType(String name) throws NoSuchBeanDefinitionException;
//返回特定name bean的别名
String[] getAliases(String name);
}