首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

XML中singleton方式 摘

2012-10-18 
XML中singleton模式 摘singletonfalse 也就是单例配置模式! 比如配置bean的时候1有关bean设置为单例还

XML中singleton模式 摘
singleton="false" 也就是单例配置模式! 比如配置bean的时候  1有关bean设置为单例还是原型,究竟怎么确定?   2与jsf结合使用时,原来jsf托管的bean的有效范围,怎么在spring的配置中反映出来呢? 设置bean     <bean   id="xx"   class="yy"/>     属性缺省值是true,相当于     <bean   id="xx"   class="yy"   singleton="true"/>         不要单例时,设置singleton="false"     <bean   id="xx"   class="yy"   singleton="false"/>         什么时候设置singleton=false什么时候设置singleton=true,需要结合实际情况分析         一般,对于immutable   class也就是不变类,应该设置为singleton=true,即缺省值         对于mutable   class没有绝对的原则,需要结合实际情况分析 1如果你是想知道怎么在配置文件中配置单实例,ustbzhangwei(wei)说得已经非常明白了,如果你是问什么时候应该用singleton,这个没有定论,看你的业务需求,一般来说,没有全局变量的类(DAO)都应该定义为singleton,有全局变量的,如果其值不可变或者有业务需求,也应该设置为singleton,还有就是不可变类应该设置为singleton。     ustbzhangwei(wei):     “什么时候设置singleton=false什么时候设置singleton=true,需要结合实际情况分析         一般,对于immutable   class也就是不变类,应该设置为singleton=true,即缺省值         对于mutable   class没有绝对的原则,需要结合实际情况分析”     2这个你不用费心,对Spring来说,如果是singleton,那么,就每次get都返回同一个Bean,如果不是,每次get就返回一个新创建的Bean。对jsf来说,它会根据bean的作用域来判断什么时候去调用Spring的get方法。 对于mutable对象,我再补充一下自己的一点浅薄的见识,欢迎大家批评指正         为了方便描述,先假设对象a就是即将讨论的mutable对象     假设引用对象a的对象是b,c,d,...         1)对象a在生命周期中,只被一个对象b引用,那么可以令singleton=true(当然,也可以=false,   但是=true表示更准确)         2)对象a在生命周期中,被多个对象b,c,d,...引用,如果程序期望b,c,d,...共享对象a(即在任意时刻b,c,d,...看到的对象a的状态都一致),那么令singleton=true         3)对象a在生命周期中,被多个对象b,c,d,...引用,如果程序期望b,c,d,...不共享对象a(即b对象修改了引用的a对象的状态,c对象所引用的a对象不能被修改,亦即b引用的a   !=   c引用的a),那么令singleton=false

热点排行