0

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

先感谢您。

4

1 回答 1

2

我认为 Spring 文档很好地解释了这一点。很快原因是,如果您的 bean 是无状态的,则您不需要多个实例。由于大多数 bean 是无状态的,因此“单例”是默认范围。但是,您可以更改此设置。还有其他范围,例如会话、请求等。

例如,如果您实施网络商店并且需要简短的实施会话范围,那么您需要的是。但是,如果您支持为每个请求分别发送的特殊参数,您可能希望为此目的使用请求范围。

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

于 2013-10-20T17:29:43.667 回答