spring - BeanFactory作用

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

    
posted @ 2020-05-27 15:56  Draymond  阅读(1107)  评论(0编辑  收藏  举报