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);
根據(jù)源碼的注解雕蔽,我們可以看到上面的接口定義包含的兩個方面信息:
BeanFactory定義的常量FACTORY_BEAN_PREFIX ,用于定位某個FactoryBean的BeanFactory的名稱前綴宾娜,例如有個test名稱的FactoryBean批狐,則根據(jù)名稱&test,可以獲取名稱為test的BeanFactory前塔。
BeanFactory定義的接口方法嚣艇,主要功能有:根據(jù)名稱獲取bean,根據(jù)類型獲取bean嘱根,根據(jù)名稱和bean實例化參數(shù)獲取多例的bean髓废,根據(jù)別名獲取bean,判斷bean的類型及單例多例该抒。
BeanFactory接口的繼承關(guān)系圖: