public interface BeanFactory {
//这里是对 FactoryBean 的转义定义,因为如果使用 bean 的名字检索 FactoryBean 得到的对象是工厂生成的对象,
//如果需要得到工厂本身,需要转义
String FACTORY_BEAN_PREFIX = "&";
//这里根据 bean 的名字,在 IOC 容器中得到 bean 实例,这个 IOC 容器就是一个大的抽象工厂。
Object getBean(String name) throws BeansException;
//这里根据 bean 的名字和 Class 类型来得到 bean 实例,和上面的方法不同在于它会抛出异常:如果根据名字取得的 b
ean 实例的 Class 类型和需要的不同的话。
Object getBean(String name, Class requiredType) throws BeansException;
//这里提供对 bean 的检索,看看是否在 IOC 容器有这个名字的 bean
boolean containsBean(String name);
//这里根据 bean 名字得到 bean 实例,并同时判断这个 bean 是不是单件
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
//这里对得到 bean 实例的 Class 类型
Class getType(String name) throws NoSuchBeanDefinitionException;
//这里得到 bean 的别名,如果根据别名检索,那么其原名也会被检索出来
String[] getAliases(String name);
}