docs/Spring全家桶/Spring源码分析/Spring组件分析/Spring组件之BeanFactory.md
public interface BeanFactory {
/**
* factoryBeanʹ
*/
String FACTORY_BEAN_PREFIX = "&";
/**
* ƻȡbean
*/
Object getBean(String name) throws BeansException;
/**
* ƻȡbean
*/
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
/**
* ƻȡbean
*/
Object getBean(String name, Object... args) throws BeansException;
/**
* ͻȡbean
*/
<T> T getBean(Class<T> requiredType) throws BeansException;
/**
* ͻȡbean
*/
<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
/**
* ȡBeanProvider
*/
<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);
/**
* ȡBeanProvider
*/
<T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);
/**
* Ƿbean
*/
boolean containsBean(String name);
/**
* ǷΪbean
*/
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
/**
* ǷΪԭbean
*/
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
/**
* жǷƥ
*/
boolean isTypeMatch(String name, ResolvableType typeToMatch)
throws NoSuchBeanDefinitionException;
/**
* жǷƥ
*/
boolean isTypeMatch(String name, Class<?> typeToMatch)
throws NoSuchBeanDefinitionException;
/**
* ƻȡbean
*/
@Nullable
Class<?> getType(String name) throws NoSuchBeanDefinitionException;
/**
* ƻȡbean
*/
@Nullable
Class<?> getType(String name, boolean allowFactoryBeanInit)
throws NoSuchBeanDefinitionException;
/**
* beanƻȡbeanı
*/
String[] getAliases(String name);
}