我们都知道Spring的核心之一为IOC的实现,而BeanFactory定义了IOC容器的基本规范。
下面我们来详细介绍BeanFactory是怎么定义IOC容器的基本接口的:
转义符“&”用来获取FactoryBean本身
getBean方法是BeanFactory的主要方法,用来获取IOC容器中的bean
containsBean方法用来判断IOC中是否含有指定名字的bean
isSingletion方法用来判断bean的类型是否为Singletion类型,在Spring中bean的默认属性是Singletion,即单例模式,所有对匹配bean的请求都共享一个bean实例
isProtoType方法用来判断bean的类型是否为ProtoType类型,该属性会导致每次对该bean的请求都会创建一个新的bean实例,而且对于具有ProtoType作用域的Bean,Spring不对该bean的生命周期负责,由调用者负责销毁对象回收资源
isTypeMatch方法用来查询指定名字的bean的Class类型是否为指定的Class类型
getType方法用来获取指定名字的bean的Class类型
getAliases方法用来获取指定名字的bean的所有别名
public interface BeanFactory{
String FACTORY_BEAN_PREFIX = "&";
Object getBean(String name) throws BeanException;
<T> T getBean(String name ,Class<T> requriedType ) throws BeanException;
Object getBean(String name, Object... args) throws BeanException;
boolean containsBean(String name);
boolean isSingletion() throws NoSuchBeanDefinitionException;
boolean isPrototype() throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name,Class targetType) throws NoSuchBeanDefinitionException;
Class getType(String name) throws NOSuchBeanDefinitionExpection;
String[] getAliases(String name);
}