栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

BeanFactory与FactoryBean的学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

BeanFactory与FactoryBean的学习

一、Spring容器

容器管理Bean的生命周期,从创建到销毁的完整过程。

二、BeanFactory
  1. BeanFactory是接口,也是IOC容器最基本的形式,给具体的容器提供了规范。
  2. BeanFactory是Factory,是IOC容器或对象工厂,负责管理所有Bean(具有生产和管理功能)。
  3. BeanFactory的具体实现如常见的:DefaultListableBeanFactory、XMLBeanFactory、ApplicationContextBeanFactory等。这些具体的容器都是在原始BeanFactory基础上进行了功能拓展,原始BeanFactory没有AOP、Web应用等功能。
  4. 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
  1. FactoryBean也是接口,为IOC容器中Bean的实现提供了灵活的方式,FactoryBean在IOC容器基础上加了装饰者和简单工厂模式,通过getObject()方法可以灵活配置Bean。
  2. FactoryBean是一个能生产或装饰Bean的工厂Bean。
  3. 从Spring3.0起,FactoryBean支持泛型。从FactoryBean中获取的对象是FactoryBean的getObject()方法返回的对象,不是FactoryBean本身这个Bean,要获取FactoryBean对象需要在id前加$符号。要想获取FactoryBean的实现类,就要getBean(&BeanName),在BeanName之前加上&。
  4. FactoryBean中定义了以下3个方法:
    TgetObject():返回由FactoryBean创建的Bean实例,如果isSingleton()返回true,则该实例会放到Spring容器中单实例缓存池中;
    booleanisSingleton():返回由FactoryBean创建的Bean实例的作用域是singleton还是prototype;
    ClassgetObjectType():返回FactoryBean创建的Bean类型。

 第一次发布,有问题后续再修改。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号