码迷,mamicode.com
首页 > 其他好文 > 详细

辨析 singleton 和 prototype

时间:2015-07-20 12:40:24      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:

<bean id="person1"  class="com.bean.life.Person">
    <property name="name">
        <value>小明</value>
    </property>
</bean>
<bean id="person2"  class="com.bean.life.Person">
    <property name="name">
        <value>小红</value>
    </property>
</bean>
刚接触spring两天,之前一直对这两个概念有误解,一直以为 singleton 说的是所有实现“同名class”的bean指向的是同一个java实例,以上面的bean为例,之前一直认为 person1、person2 是对同一 com.bean.life.Person 对象的引用,so foolish ,不论bean的作用域定位为 singleton 还是 prototype ,person1、person2 都是不同的实例 !
 
 正解是:xml 中配置的每一个 bean 都是不同的实例 !
  我们所说的的 singleton 指的是当我们用getBean()或 ref 获得一个 bean 的时候,到底得到的是同一个bean,还是每次都创建一个全新的 bean 实例。在Spring中所说的singleton、prototype都是针对的某“一个”bean。所以:
  singleton 指的是 single bean,每个 bean 都只有一个实例对象,不论调用多少次 getBean()方法,不论有多少 ref 依赖,spring 容器中都只有一个 bean 实例。
  prototype 指的是都针对这个 bean ,每当调用 getBean()方法,或是有 ref 依赖时,都会创建一个全新的 bean 实例,容器中有多个 bean 实例。
 
注:Spring 中的缺省作用域是: Singleton 。

 

辨析 singleton 和 prototype

标签:

原文地址:http://www.cnblogs.com/kanghaimeng/p/4660809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!