为什么Spring将实例初始化为单例?影响他们决定以这种方式处理初始化的原因是什么?

时间:2013-10-20 17:23:07

标签: java spring spring-mvc spring-security spring-roo

我不明白为什么Spring框架默认设计为返回单例实例的决定。因此,在调用应用程序上下文时会传递相同的对象。影响spring决定以这种方式处理bean初始化的原因是什么?如果将所有bean初始化为原型,会发生什么不好的事情?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为Spring文档很好地解释了这一点。原因很简单,如果你的bean是无状态的,你不需要多个实例。由于大多数bean都是无状态的“singleton”是默认范围。但是你可以改变它。还有其他范围,例如会议,请求等。

例如,如果您实现了Web存储并且需要curt实现会话范围就是您所需要的。但是,如果您支持为每个请求单独发送的特殊参数,则可能需要为此目的使用请求范围。

但是访问数据库,执行身份验证,发送电子邮件或SMS的bean,可以并且应该使用单例范围实现其他业务逻辑。