Spring如何在引擎盖下维护单身人士,原型?

时间:2009-10-14 17:23:15

标签: java spring

我一直在使用Spring一段时间但是我真的不知道当我要求Spring在多个不同的服务类中注入一个DAO时,它总是同一个类,或者我需要原型是一个新的会话范围的每一次等等。任何人都可以分享这些尤其是“Singletons”,因为它是最常用的,也可以说服务层类的线程安全问题,可能包含状态但是单例

1 个答案:

答案 0 :(得分:3)

我不是想成为这里的“LMGTFY”傻瓜,但我怀疑任何人都会比Spring documentation on bean scopes更好地解释它。

尽管如此,要快速解决您的具体问题:

  1. 单例bean(默认作用域)通常在加载时由bean工厂预先实例化(除非另有配置)。可以把它想象成bean的地图。当你要求一个bean(直接或作为其他bean的依赖或者它自动装配时),它是从那张地图中获得的。
  2. 原型bean没有预先实例化;每当你要求原型bean时,Spring都会创建并初始化一个新实例。
  3. 就多线程而言,Dean J(他删除了他的答案)是对的 - 你的服务不应该保持一个状态,或者如果他们这样做,应该适当地同步。