为什么原型范围与状态豆一起使用



春季文档 - 根据经验,您应该使用原型范围来适用于所有状态的豆,而单例范围应用于无状态豆。

因此,当您必须在上下文中始终保持某些状态/数据时,必须使用状态bean。说银行应用程序。您希望您的对象在各种操作(存款,撤回等)中保持同步。

因此,在单例示波器中,您会得到同样的东西 - 在上下文中的对象一致性。

为什么Javadoc表示Opppposite?

帮助!:)

这主要是由于在多线程环境中使用singleton bean时需要保留的同步问题。使用原型Bean,每个对Bean的请求都将创建一个新的Bean实例,因此您无需关心在线程中同步对BEAN状态的访问。但是,将原型和单豆豆混合在一起时,您需要非常小心,因为原型豆只能将其连接到单顿豆中一次。也就是说,它有效地变成了这个豆子中的单身人...

如果您确实需要在单顿豆中使用原型豆,则应使用@Lookup方法注释。

大多数情况

具有状态的单身豆的一个例子是缓存。通过使用专用的缓存库,例如Infinispan,Guava,Hazlecast,...您不需要在这里关心同步,因为这些方面由这些库处理。

鉴于您的银行示例,您可能不想将交易详细信息存储在诸如Java Heap之类的重点存储中。如果您的应用程序出于某种原因崩溃,那么所有这些信息将不可撤销。此信息需要存储在诸如数据库之类的持久存储中。

相关内容

最新更新