这个问题本身措辞不力.您可以在Singletons和Prototypes(实例)中拥有状态,因为它是合法代码,但在任何一种情况下您都不需要具有状态.自提到Spring之后,我将尝试回答有关使用Spring的问题.
就Spring bean范围而言,singleton将导致ApplicationContext创建单个实例并在所要求的bean的每个地方使用该实例. 每次要求bean时prototype都会导致ApplicationContext创建一个新实例.
它们都可以是有状态的.
如果您将“无状态”理解为“没有会话状态”,即与特定客户端的会话相关的状态,那么这个问题看起来相当合法(尽管措辞不佳)。
在这些术语中,singleton作用域 bean 通常是无状态的,因为它们由多个客户端同时使用,并且它们的状态不是特定于客户端的。
相反,prototype作用域 bean 通常是在与特定客户端的对话上下文中创建的(尽管request有时session作用域可能更合适),因此它们的状态与这些对话相关(因为如果您的 bean 不需要保持任何对话状态,您可以将其设为singleton)。从这个意义上说,prototypebean 是有状态的。
| 归档时间: |
|
| 查看次数: |
6169 次 |
| 最近记录: |