Spring Bean的种类和作用域

一、种类

  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
欢迎联系我共同交流
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值