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);
}
複製程式碼