spring中的BeanFactory与FactoryBean的讲解

 更新时间:2019年01月11日 11:55:00   作者:qq_43193797  
今天小编就为大家分享一篇关于spring中的BeanFactory与FactoryBean的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

1.BeanFactory

1.1Spring提供了IOC容器的两种实现方式

  • ① BeanFactory:IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。
  • ② ApplicationContext:BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactory。

1.2 ApplicationContext的主要实现类

  • ClassPathXmlApplicationContext:对应类路径下的XML格式的配置文件
  • FileSystemXmlApplicationContext:对应文件系统中的XML格式的配置文件
  • 在初始化时就创建单例的bean,也可以通过配置的方式指定创建的Bean是多实例的。

1.3 ConfigurableApplicationContext

  • 是ApplicationContext的子接口,包含一些扩展方法
  • refresh()和close()让ApplicationContext具有启动、关闭和刷新上下文的能力。

1.4 WebApplicationContext

  • 专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作

2 FactoryBean

Spring中有两种类型的bean,一种是普通bean,另一种是工厂bean,即FactoryBean。

工厂bean跟普通bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂bean的getObject方法所返回的对象。

工厂bean必须实现org.springframework.beans.factory.FactoryBean接口。

<bean id="product" class="com.atguigu.spring.bean.ProductFactory">
 <property name="productName" value="Mp3" />
</bean>

解释:上面实现org.springframework.beans.factory.FactoryBean接口的ProductFactory在配制文件中创建得到的对象,并不是ProductFactory对象,它只是一个工厂,得到的是ProductFactory中getObject方法得到的对象。

小结:

1.Spring通过工厂bean支持我们参与到bean对象的创建过程中.

2.工厂bean最终返回的对象是由getObject方法来决定。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • java基础入门之IO流

    java基础入门之IO流

    流是一种抽象概念,它代表了数据的无结构化传递。。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出
    2021-06-06
  • Java经典面试题汇总--多线程

    Java经典面试题汇总--多线程

    本篇总结的是Java多线程相关的面试题,后续会持续更新,希望我的分享可以帮助到正在备战面试的实习生或者已经工作的同行,如果发现错误还望大家多多包涵,不吝赐教,谢谢
    2021-06-06
  • Spring注解与P/C命名空间超详细解析

    Spring注解与P/C命名空间超详细解析

    Spring注解方式减少了配置文件内容,更加便于管理,并且使用注解可以大大提高了开发效率!注解本身是没有功能的,和xml一样,注解和xml都是一种元数据,元数据即解释数据的数据,也就是所谓的配置
    2022-11-11
  • java实现登录之后抓取数据

    java实现登录之后抓取数据

    这篇文章给大家分享了用JAVA实现在登陆以后抓取网站的数据的相关知识,有兴趣的朋友可以测试参考下。
    2018-07-07
  • Java线程实现时间动态显示

    Java线程实现时间动态显示

    这篇文章主要为大家详细介绍了Java线程实现时间动态显示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • java 打印一字符串,并在main()方法内调用它

    java 打印一字符串,并在main()方法内调用它

    编写一个方法(名字自定,但要符合Java编码规范),方法内打印一字符串,并在main()方法内调用它。
    2017-02-02
  • Java实现微信红包分配规则

    Java实现微信红包分配规则

    这篇文章主要为大家详细介绍了Java实现仿微信红包分配规则,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 解决IDEA中Maven项目中JSTL标签无效问题

    解决IDEA中Maven项目中JSTL标签无效问题

    这篇文章主要介绍了关于IDEA中Maven项目中JSTL标签无效问题的解决方法,需要的朋友可以参考下
    2018-09-09
  • Idea 2023.2.5配置插件、Maven的过程

    Idea 2023.2.5配置插件、Maven的过程

    这篇文章主要介绍了Idea 2023.2.5配置插件、Maven的过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • Spring Boot Admin 的使用详解

    Spring Boot Admin 的使用详解

    这篇文章主要介绍了Spring Boot Admin 的使用详解,Spring Boot Admin 用于监控基于 Spring Boot 的应用,有兴趣的可以了解一下
    2017-09-09

最新评论