一、Spring容器
容器管理Bean的生命周期,从创建到销毁的完整过程。
二、BeanFactory- BeanFactory是接口,也是IOC容器最基本的形式,给具体的容器提供了规范。
- BeanFactory是Factory,是IOC容器或对象工厂,负责管理所有Bean(具有生产和管理功能)。
- BeanFactory的具体实现如常见的:DefaultListableBeanFactory、XMLBeanFactory、ApplicationContextBeanFactory等。这些具体的容器都是在原始BeanFactory基础上进行了功能拓展,原始BeanFactory没有AOP、Web应用等功能。
- BeanFactory仅有6个方法供客户调用:
boolean containsBean(String beanName) 判断工厂中是否包含给定名称的bean定义,若有则返回true。
Object getBean(String) 返回给定名称注册的bean实例。根据bean的配置情况,如果是singleton模式将返回一个共享实例,否则将返回一个新建的实例,如果没有找到指定bean,该方法可能会抛出异常。
Object getBean(String, Class) 返回以给定名称注册的bean实例,并转换为给定class类型。
Class getType(String name) 返回给定名称的bean的Class,如果没有找到指定的bean实例,则排除NoSuchBeanDefinitionException异常。
boolean isSingleton(String) 判断给定名称的bean定义是否为单例模式。
String[] getAliases(String name) 返回给定bean名称的所有别名(具有生产功能) 。
- FactoryBean也是接口,为IOC容器中Bean的实现提供了灵活的方式,FactoryBean在IOC容器基础上加了装饰者和简单工厂模式,通过getObject()方法可以灵活配置Bean。
- FactoryBean是一个能生产或装饰Bean的工厂Bean。
- 从Spring3.0起,FactoryBean支持泛型。从FactoryBean中获取的对象是FactoryBean的getObject()方法返回的对象,不是FactoryBean本身这个Bean,要获取FactoryBean对象需要在id前加$符号。要想获取FactoryBean的实现类,就要getBean(&BeanName),在BeanName之前加上&。
- FactoryBean中定义了以下3个方法:
TgetObject():返回由FactoryBean创建的Bean实例,如果isSingleton()返回true,则该实例会放到Spring容器中单实例缓存池中;
booleanisSingleton():返回由FactoryBean创建的Bean实例的作用域是singleton还是prototype;
ClassgetObjectType():返回FactoryBean创建的Bean类型。
第一次发布,有问题后续再修改。



