BeanFactory
本质是一个Bean工厂,负责Bean生命周期管理,存储Bean实例,提供Bean的查找
是spring Ioc容器的顶级接口,ApplicationContext接口是该接口的一个子接口;
public interface BeanFactory {
//getBean时 如果名称还有此前缀,会获取FactoryBean的实例,而不是FactoryBean生成的Bean实例
String FACTORY_BEAN_PREFIX = "&";
Object getBean(String name) throws BeansException;
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
<T> T getBean(Class<T> requiredType) throws BeansException;
Object getBean(String name, Object... args) throws BeansException;
boolean containsBean(String name);
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name, Class<?> targetType) throws NoSuchBeanDefinitionException;
Class<?> getType(String name) throws NoSuchBeanDefinitionException;
String[] getAliases(String name);
}
FactoryBean
本质是一个Bean,
是一个具有工厂特性的Bean,
与普通Bean的区别是,他的实例用于生产Bean; 途径:getObject方法;
public interface FactoryBean<T> {
T getObject() throws Exception;
Class<?> getObjectType();
boolean isSingleton();
}