精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-30
楼主,Singleton是相对而言的,比如Spring的Singleton是针对Spring容器而言的,而GoF那种经典的Singleton是针对ClassLoader而言,具体你可以看下这篇文章把:http://www.digizenstudio.com/blog/2006/09/14/a-spring-singleton-is-not-a-singleton/
|
|
返回顶楼 | |
发表时间:2010-09-02
khotyn 写道 楼主,Singleton是相对而言的,比如Spring的Singleton是针对Spring容器而言的,而GoF那种经典的Singleton是针对ClassLoader而言,具体你可以看下这篇文章把:http://www.digizenstudio.com/blog/2006/09/14/a-spring-singleton-is-not-a-singleton/ 比较赞同ClassLoader和Spring容器的区别。 |
|
返回顶楼 | |
发表时间:2011-01-21
JiongBull 写道 刚刚看spring,好像是说.
区别singleton的作用范围在ioc容器. 正解,作用域不样。静态类 的作用域是classloader吧 |
|
返回顶楼 | |
发表时间:2011-03-05
kaowww153 写道
哎,别人真心求教,用的着这么说吗,现在je上面的人啊。。。。 @Autowired private DataExportService dataExportService; @Autowired private DataExportService dataExportService1; @Test public void test() throws Exception { DataExportService dataExportService3 = new DataExportService(); DataExportService dataExportService4 = new DataExportService(); System.out.println(dataExportService==dataExportService1); //返回 true(spring) System.out.println(dataExportService3==dataExportService4); //返回 false(单例模式) } 具体就是域不一样。 这个说的很清楚明了。楼主可以参考一下。 |
|
返回顶楼 | |
发表时间:2011-03-11
爬到第四面,发现几只bug,甚讨厌。
不知道现在有的人是不是写程序把脑子写抽抽了。究竟是现实中就不会当人,还是现实中太会当人,来网上不是人一下。 真不知道哪来的莫名其妙的优越感。别人都sb,就你精,你是精b。 |
|
返回顶楼 | |
发表时间:2011-03-17
引自spring文档,这个答案应该满意吧
当一个bean的作用域为singleton, 那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。 换言之,当把一个bean定义设置为singlton作用域时,Spring IoC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例缓存(singleton cache)中,并且所有针对该bean的后续请求和引用都将返回被缓存的对象实例。 请注意Spring的singleton bean概念与“四人帮”(GoF)模式一书中定义的Singleton模式是完全不同的。经典的GoF Singleton模式中所谓的对象范围是指在每一个ClassLoader中指定class创建的实例有且仅有一个。把Spring的singleton作用域描述成一个container对应一个bean实例最为贴切。亦即,假如在单个Spring容器内定义了某个指定class的bean,那么Spring容器将会创建一个且仅有一个由该bean定义指定的类实例。Singleton作用域是Spring中的缺省作用域 |
|
返回顶楼 | |