spring-BeanFactory接口
将BeanFactory的源码复制出来,删除注释。
BeanFactory工厂的顶级接口,定义一系列对bean的操作。看方法
{
public interface BeanFactory {
//工厂的标识
String FACTORY_BEAN_PREFIX = "&";
//通过name获取bean
Object getBean(String name) throws BeansException;
//名字和类型获取bean
<T> T getBean(String name, @Nullable Class<T> requiredType) throws BeansException;
//名字和对应的构造器
Object getBean(String name, Object... args) throws BeansException;
//通过类型去获取bean,如果有多个该类型的bean,无法解决那么抛出异常。
<T> T getBean(Class<T> requiredType) throws BeansException;
//类型和构造函数,这个方法传入args是构造函数的参数,会根据传入的参数选取对应的构造函数
<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
//判断容器中是否包含bean
boolean containsBean(String name);
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name, @Nullable Class<?> typeToMatch) throws NoSuchBeanDefinitionException;
@Nullable
Class<?> getType(String name) throws NoSuchBeanDefinitionException;
String[] getAliases(String name);
}
}
4个getBean方法、containBean方法、isSingleton方法、isPrototype方法、2个isTypeMatch方法、getType、getAliases。
FACTORY_BEAN_PREFIX
bean工厂的前缀,在获取bean的时候带上&表示获取bean的bean工厂。
4个getBean方法
不同的获取bean的策略,用于不同的场景。容器中没有bean定义和bean还没有被创建都会抛出异常
containsBean
包含
isSingleton
是否是单例
isPrototype
是否是原型
2个isTypeMatch
是不是匹配的类型,一个指定了类型,一个是泛型。
getType
获取bean的class类型
getAliases
获取bean的所有的别名
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。