欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Bean的种类和作用域

程序员文章站 2022-05-22 19:53:58
...

一、种类

  1. 普通Bean

    //spring直接创建A实例,并返回。
    xml声明: <bean  id=""  class="A"> 
    注解声明: @Bean
    
  2. FactoryBean

    首先它是一个Bean,但又不仅仅是一个Bean。它是一个能生产或修饰对象生成的工厂Bean,类似于设计模式中的工厂模式和装饰器模式。它能在需要的时候生产一个对象,且不仅仅限于它自身,它能返回任何Bean的实例。

  3. BeanFactory

    BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()containsBean()等管理Bean的通用方法。Spring的容器都是它的具体实现如:

    • DefaultListableBeanFactory
    • XmlBeanFactory
    • ApplicationContext

    这些实现类又从不同的维度分别有不同的扩展。

  4. FactoryBean 和 BeanFactory 区别:

    BeanFactory:是一个工厂(其实是构建了一个spring上下文的环境,容器),用来管理和获取很多Bean对象,例如:加载applicationContext.xml文件。
    FactoryBean:是一个Bean生成工具,是用来获取一种类型对象的Bean,它是构造Bean实例的一种方式。

二、作用域

  • singleton 单例,默认值

说明:在Spring IoC容器中仅存在一个Bean实例, Bean以单例方式存在,在容器启动时创建

  • prototype 多例

说明:每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean(), 在调用时创建

  • request

    说明:每次HTTP请求都会创建一个新的Bean, 该作用域仅适用于WebApplicationContext环境

  • session

    说明:同一个HTTP Session 共享一个Bean, 不用Session 使用不同的Bean, 该作用域仅适用于WebApplicationContext环境


感谢阅读本博客。

欢迎关注我的博客:https://li-weijian.github.io/

欢迎关注我的CSDN:https://blog.csdn.net/qq352642663

需要联系请加QQ:352642663

欢迎联系我共同交流

相关标签: Spring 面试