作用:
獲取ioc中的bean
public interface BeanFactory {
String FACTORY_BEAN_PREFIX = "&";
Object getBean(String var1) throws BeansException;
<T> T getBean(String var1, Class<T> var2) throws BeansException;
<T> T getBean(Class<T> var1) throws BeansException;
Object getBean(String var1, Object... var2) throws BeansException;
<T> T getBean(Class<T> var1, Object... var2) throws BeansException;
boolean containsBean(String var1);
boolean isSingleton(String var1) throws NoSuchBeanDefinitionException;
boolean isPrototype(String var1) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String var1, ResolvableType var2) throws NoSuchBeanDefinitionException;
//查詢指定了名字的Bean的Class類型是否是特定的Class類型。這個Class類型可以由用戶來指定
boolean isTypeMatch(String var1, Class<?> var2) throws NoSuchBeanDefinitionException;
// 獲取bean對應的class
Class<?> getType(String var1) throws NoSuchBeanDefinitionException;
String[] getAliases(String var1);
}
備注:
FACTORY_BEAN_PREFIX = "&";
這個主要是用於FactoryBean上。FactoryBean和BeanFactory的區別需要知道:
BeanFactory是一個工廠,也就是一個容器,是來管理bean的;FactoryBean是一個bean,所以也是由BeanFactory來管理的,
不過FactoryBean不是一個普通的Bean,它會表現出工廠模式的樣子(也可以理解為修飾器),是一個能產生或者修飾對象生成的工廠Bean,
里面的getObject()就是用來獲取FactoryBean產生的對象。所以在BeanFactory中使用“&”來得到FactoryBean本身,
用來區分通過容器獲取FactoryBean產生的對象還是獲取FactoryBean本身。