1,org.springframework.beans.factory.BeanFactory
我们查看源码中对BeanFactory的描述,BeanFactory作为spring bean容器的根接口,用于保存spring definition,并可以在需要的时候,实例化单例和多例的spring bean。
查看一下BeanFactory中定义的常量和接口方法:
String FACTORY_BEAN_PREFIX = "&";
Object getBean(String name) throws BeansException;
T getBean(String name, Class requiredType) throws BeansException;
T getBean(Class requiredType) throws BeansException;
Object getBean(String name, Object... args) throws BeansException;
boolean containsBean(String name);
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException;
Class getType(String name) throws NoSuchBeanDefinitionException;
String[] getAliases(String name);
根据源码的注解,我们可以看到上面的接口定义包含的两个方面信息:
BeanFactory定义的常量FACTORY_BEAN_PREFIX ,用于定位某个FactoryBean的BeanFactory的名称前缀,例如有个test名称的FactoryBean,则根据名称&test,可以获取名称为test的BeanFactory。
BeanFactory定义的接口方法,主要功能有:根据名称获取bean,根据类型获取bean,根据名称和bean实例化参数获取多例的bean,根据别名获取bean,判断bean的类型及单例多例。
BeanFactory接口的继承关系图: