美文网首页
Spring bean 作用域

Spring bean 作用域

作者: 博为峰51Code教研组 | 来源:发表于2017-06-19 14:45 被阅读0次

[题目]

Spring中定义bean的作用域时,使用singleton和prototype有何区别?

[正确答案]

singleton作用域:当把一个Bean定义设置为singleton作用域时,Spring IoC容器中只会存在一个共享的Bean实例,并且所有对Bean的请求(将其注入到另一个Bean中,或者以程序的方式调用容器的getBean()方法),只要id与该Bean定义相匹配,则只会返回该Bean的同一实例,可以理解为单例模式。

prototype作用域:prototype作用域的Bean会导致在每次对该Bean请求时都会创建一个新的Bean实例。

[面试技术点]

Spring bean定义的作用域概念。

[解读]

小博老师用一个简单的例子说明singleton与prototype的区别。

比如有一个User类定义如下:

Spring配置文件中bean的定义如下:

测试用例代码如下:

执行结果为:

User is initialized.

如果把bean的scope修改为prototype:

再次运行测试用例,结果为:

User is initialized.

User is initialized.

从上面的例子可以看出,当bean的scope配置为singleton的时候,通过spring context获取bean的实例,只会初始化一次。也就说明singletone是单例模式。

当bean的scope配置为prototype时,通过spring context获取bean的实例,每次都会初始化,也就是说每次都新建了一个对象。

[扩展]

Spring框架支持以下五种bean的作用域:

singleton:bean在每个Spring

IoC容器中只有一个实例。

prototype:一个bean的定义可以有多个实例。

request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring

ApplicationContext情形下有效。

session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

global-session:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

缺省的Spring bean的作用域是singleton。

相关文章

  • SPRING BEAN的基础

    一、SPRING BEAN的定义: 二、SPRING BEAN的作用域: 作用域例子: your msg :p...

  • Spring

    Spring Bean 作用域 Spring 3 中为 Bean 定义了 5 中作用域分别为 singleton(...

  • Spring Bean 作用域

    原文 :一文读懂Spring Bean作用域 - RelaxHeart网 Spring Bean的几种作用域 Sp...

  • Spring_04_Bean的作用域

    Bean的作用域  当在Spring中定义个bean时,你必须声明bean的作用域选项.例如,为了强制Spring...

  • Bean的作用域

    Bean的作用域: singleton 当一个bean的作用域为singleton,那么Spring IoC容器中...

  • Bean的作用域

    Bean的作用域: singleton 当一个bean的作用域为singleton,那么Spring IoC容器中...

  • 7、Spring-XML-作用域

    一、概要 scope 用来配置 spring bean 的作用域。 在spring2.0之前,bean只有2种作用...

  • Spring-XML-作用域

    一、概要 scope 用来配置 spring bean 的作用域。 在spring2.0之前,bean只有2种作用...

  • Spring Bean的生命周期

    Spring 容器可以管理 singleton 作用域 Bean 的生命周期,在此作用域下,Spring 能够精确...

  • spring详解(二)

    ③容器中bean的作用域: |作用域|描述||---|---||singleton|单例模式,在整个Spring ...

网友评论

      本文标题:Spring bean 作用域

      本文链接:https://www.haomeiwen.com/subject/nnigqxtx.html