转自:
http://www.java265.com/JavaFramework/Spring/202109/964.html
下文笔者将讲述Spring Framework中BeanFactory和FactoryBean的区别点,如下所示:
BeanFactory简介
BeanFactory是所有Spring容器的根接口
此接口为所有的Spring容器定义了一套标准(IOC容器定义了一套标准)
常见的方法如下所示:
方法名 | 备注说明 | getBean(String name) | Spring容器中获取对应Bean对象的方法,如存在,则返回该对象 | containsBean(String name) | Spring容器中是否存在该对象 | isSingleton(String name) | 通过beanName是否为单例对象 | isPrototype(String name) | 判断bean对象是否为多例对象 | isTypeMatch(String name, ResolvableType typeToMatch) | 判断name值获取出来的bean与typeToMath是否匹配 | getType(String name) | 获取Bean的Class类型 | getAliases(String name) | 获取name所对应的所有的别名 | BeanFactory常见的实现类(包括抽象类)
类名 | 备注说明 | AbstractBeanFactory | 抽象Bean工厂,绝大部分的实现类,都是继承于它 | DefaultListableBeanFactory | Spring默认的工厂类 | XmlBeanFactory | 前期使用XML配置用的比较多的时候用的Bean工厂 | AbstractXmlApplicationContext | 抽象应用容器上下文对象 | ClassPathXmlApplicationContext | XML解析上下文对象,用户创建Bean对象我们早期写Spring的时候用的就是它 | BeanFactory的使用方法
运用ClassPathXmlApplicationContext读取spring的配置文件获取一个实例对应上下文对象- ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});
- BeanFactory factory = (BeanFactory) context;
复制代码 FactoryBean
FactoryBean是SpringIOC容器中创建Bean的一种形式
采用FactoryBean的方式创建Spring Bean,可以减少xml的配置
FactoryBean中常见的方法
方法名 | 备注说明 | T getObject() | 返回实例 | Class getObjectType(); | 返回该装饰对象的Bean的类型 | default boolean isSingleton() | Bean是否为单例 | FactoryBean中常用的类
类名 | 备注说明 | ProxyFactoryBean | Aop代理Bean | GsonFactoryBean | Gson | 例:
FactoryBean创建SpringBean的示例分享- BeanFactory同FactoryBean的区别:
- BeanFactory:负责生产和管理Bean的一个工厂接口,提供Spring Ioc容器标准
- FactoryBean: 一种Bean创建的一种方式,对Bean的一种扩展
- 可以直接使用代码的方式创建一个SpringBean
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |