BeanFactory体系架构与FactoryBean体系结构
2006-01-20 21:23
330 查看
BeanFactory是访问Spring beans的一个容器。所有的Spring beans的定义都会在这里被统一的处理。换句话说,BeanFactory interface是一个应用组件(Spring bean)的集中注册器和配置器。从一般意义上来讲,BeanFactory是用来加载和管理Spring bean definition的。
BeanFactory的定义大致如下:
public interface BeanFactory {
Object getBean(String name) throws BeansException;
Object getBean(String name, Class requiredType) throws BeansException;
boolean containsBean(String name);
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
Class getType(String name) throws NoSuchBeanDefinitionException;
String[] getAliases(String name) throws NoSuchBeanDefinitionException;
}
从这个接口的定义可以看出,BeanFactory是关注如何获取bean的,至于Bean的定义存在何处,怎样存储的,根本就不关心。这意味这Spring bean 的definition事实上可以存在Ldap里,可以存在DB里,非常的灵活,而不仅仅是XML文件。
public interface FactoryBean {
Object getObject() throws Exception;
Class getObjectType();
boolean isSingleton();
}
getObject()返回Factory管理的对象,注意并不是Factory本身的实例。Factory管理的对象可以是singleton的,也可以是prototype的,所以此接口有了另一个方法boolean isSingleton()用于区别是返回哪一种对象。getObjectType()最主要的目的就是在不创建实例的情况下就能知道欲创建的对象的类型。
从BeanFactory的定义可以看出,BeanFactory除了获取bean的功能外,还有bean的Type,bean的是否singleton的等特性,此外,前面分析已可以知道,getBean()可以返回singleton或prototype类型的实例。正是为了统筹管理这些bean创建相关的各种特性,才诞生了FactoryBean类。FactoryBean类主要是bean创建方面的一个统筹的管理。这是BeanFactory和FactoryBean的关系。
BeanFactory的定义大致如下:
public interface BeanFactory {
Object getBean(String name) throws BeansException;
Object getBean(String name, Class requiredType) throws BeansException;
boolean containsBean(String name);
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
Class getType(String name) throws NoSuchBeanDefinitionException;
String[] getAliases(String name) throws NoSuchBeanDefinitionException;
}
从这个接口的定义可以看出,BeanFactory是关注如何获取bean的,至于Bean的定义存在何处,怎样存储的,根本就不关心。这意味这Spring bean 的definition事实上可以存在Ldap里,可以存在DB里,非常的灵活,而不仅仅是XML文件。
public interface FactoryBean {
Object getObject() throws Exception;
Class getObjectType();
boolean isSingleton();
}
getObject()返回Factory管理的对象,注意并不是Factory本身的实例。Factory管理的对象可以是singleton的,也可以是prototype的,所以此接口有了另一个方法boolean isSingleton()用于区别是返回哪一种对象。getObjectType()最主要的目的就是在不创建实例的情况下就能知道欲创建的对象的类型。
从BeanFactory的定义可以看出,BeanFactory除了获取bean的功能外,还有bean的Type,bean的是否singleton的等特性,此外,前面分析已可以知道,getBean()可以返回singleton或prototype类型的实例。正是为了统筹管理这些bean创建相关的各种特性,才诞生了FactoryBean类。FactoryBean类主要是bean创建方面的一个统筹的管理。这是BeanFactory和FactoryBean的关系。
相关文章推荐
- BeanFactory体系架构与FactoryBean体系结构
- Spring源码学习之BeanFactory体系结构
- Spring源码学习之BeanFactory体系结构
- Spring的BeanFactory体系结构(一)
- Spring IOC-BeanFactory的继承体系结构
- Spring的BeanFactory体系结构
- IOC实现之BeanFactory体系结构(一)
- 大规模网站架构实战之体系结构(一)
- 【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始
- 【转载】CPU架构、指令集与指令集体系结构(ISA)
- openHAB 体系结构与编程模型 (2) --- Web Application Servlet 架构
- .net架构设计读书笔记--第二章 设计体系结构
- Oracle体系结构:内存结构和进程结构-体系架构
- Software Architecture 软件架构探险之旅(1) - 软件体系结构
- Oracle体系结构:内存结构和进程结构-体系架构
- 转:大规模网站架构实战之体系结构(一)
- Linux体系结构(三): X Window架构
- 初识软件体系结构(架构)
- Spring BeanFactory、ApplicationContext层次结构和BeanDefinition解析过程
- php结构体系与java架构体系对比