spring源代码学习(2.0.5)一(BeanFactory)

1、首先看一下BeanFactory
  有一个常量:FACTORY_BEAN_PREFIX=&
        这里是对FactoryBean的转义定义,因为如果使用bean的名字检索FactoryBean得到的对象是工厂生成的对象
       如果需要得到工厂本身,需要转义。
//返回以给定名字注册的bean实例。根据bean的配置情况,如果为singleton模式将返回一个共享的实例,否则 将返回一个新建的实例。如果没有找到指定的bean,该方法可能会抛出BeansException异常(实际上将抛出NoSuchBeanDefinitionException异常),在对bean进行实例化和预处理时也可能抛出异常
Object getBean(String name) throws BeansException; 
//返回以给定名称注册的bean实例,并转换为给定class类型的实例,如果转换失败,相应的异常(BeanNotOfRequiredTypeException)将被抛出。上面的getBean(String)方法也适用该规则
Object getBean(String name, Class requiredType) throws BeansException
//如果BeanFactory包含给定名称的bean定义(或bean实例),则返回true
boolean containsBean(String name);
//判断给定名称的bean定义(或bean实例)是否为singleton模式(singleton将在bean的作用域中讨论),如果bean没找到,则抛出NoSuchBeanDefinitionException异常。
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;  

boolean isPrototype(String name) throws NoSuchBeanDefinitionException
#检测给定的名称获取的类,是不是与给定的class类型相匹配,如果匹配,返回ture,否则返回flase,如果给定名称转化成类失败,相应的异常(NoSuchBeanDefinitionException)将被抛出
boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException
取得bean对应的class实例
Class getType(String name) throws NoSuchBeanDefinitionException;
获取指定所有bean的别名
String[] getAliases(String name);



你可能感兴趣的:(spring源代码学习(2.0.5)一(BeanFactory))