作用:
获取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本身。