Spring源码-BeanFactory

org.springframework.beans.factory

BeanFactory接口本身只提供了基础的功能,其余扩展功能都依赖子接口,体现了面向对象六大原则——接口隔离原则

BeanFactory源码:

/**
* 获取Bean实例
**/
// @param name 指定Bean名称
Object getBean(String name) throws BeansException;
// @param name 指定Bean名称
// @param requiredType 指定Bean类型,可以是接口或超类
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
// @param name 指定Bean名称
// @param args 构造Bean实例时传入的参数
Object getBean(String name, Object... args) throws BeansException;
<T> T getBean(Class<T> requiredType) throws BeansException;
<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;

//判断给定名字的Bean是否和给定类型匹配
boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;

//根据给定Bean名字获取类型
Class<?> getType(String name) throws NoSuchBeanDefinitionException;

//根据给定Bean名字获取别名
String[] getAliases(String name);

/**
* 获取ObjectProvider对象,待补充
**/
<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);
<T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);

可以看到都是针对单个Bean的简单基础方法。

posted @ 2019-11-11 10:30  孔令翰  阅读(121)  评论(0编辑  收藏  举报