singleton
Singleton:
当一个 bean 的作用域为 singleton(单例)时,IOC 容器中只会存在一个共享的 bean 实例,且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。也就是说,这个单一实例被存储到单例缓存中,以后所有针对该 bean 的后续请求和引用都返回这个缓存的对象实例,IOC 容器中只存在一个该 bean。
prototype:
每一次请求都会产生一个新的 bean 实例(相当于每个用户所产生的 bean 实例都不同)。
对于 prototype 任何配置好的析构生命周期回调方法都不会被调用,清除 prototype 作用域的对象释放资源是客户端代码的职责。
(可以使用 bean 的后置处理器,该处理器持有要被清除的 bean 的引用)
总结:
对有状态的 bean 要使用 prototype 作用域
对无状态的 bean 使用 singleton 作用域
有状态的 bean :
每个用户有自己特有的一个实例,一旦用户调用结束或实例结束,bean 的生命期亦结束。
无状态的 bean :
被所有用户所共享,及时用户调用结束或实例结束,bean 的生命期也不一定会停止。所有的变量受到所有调用它的用户的影响(类似于静态声明)。
另:在 Spring boot 中,可以添加 @Scope(“prototype”) 改变为多例(默认为单例)
相关阅读
原文链接:http://legacy.python.org/dev/peps/pep-0008/ item detail PEP 8 Title Style Guide for Python C
QString strSelect = "/select,"; QString path = strfileName;//文件地址 path.replace("/","\\");//将地址中的"/"替换为"\"
编者按:我有特别的抢眼技巧!今天的好文非常值得拜读,@飞屋睿UIdesign 同学从对比、色彩、字体、留白等方面帮同学们将最关键的内容
转载自 这些面试中的智力题,你都会了吗 1. 给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的。要求这个瞎子把牌分
在5.17世界电信日来临之际,苹果联手国内专业3C产品回收平台“估吗”及中国电信推出“以旧换新”活动,为用户带