我有一个使用Spring的java应用程序。春豆是单身。当我将应用程序部署为applet,并且用户在浏览器的不同选项卡中打开时,应用程序实例共享相同的spring bean并导致一些问题。那么,我们有什么方法可以强制在不同的JVM实例中打开每个applet,或者有任何建议来处理这个吗?小程序singleton spring beans问题
谢谢。
我有一个使用Spring的java应用程序。春豆是单身。当我将应用程序部署为applet,并且用户在浏览器的不同选项卡中打开时,应用程序实例共享相同的spring bean并导致一些问题。那么,我们有什么方法可以强制在不同的JVM实例中打开每个applet,或者有任何建议来处理这个吗?小程序singleton spring beans问题
谢谢。
春豆在他们的情况下是单身,而不是经典的每单身单身。所以,我想说的问题是,小程序显然是共享相同的Spring上下文(这是他们不应该)
回复评论:
ServiceProvider.getContextInstace().getService(name...).
如何让这个的ServiceProvider使用ThreadLocal
内部存储它的上下文(有平时应每小应用程序只有一个线程,对吧?)
是的。在代码中,服务bean(spring bean)是从单个上下文接收的。类似于ServiceProvider.getContextInstace()。getService(name ...)。这对正常的应用程序应该没问题。如何使用小程序管理它? – 2011-05-19 11:38:56
@Response ThreadLocal:不,小程序可以有不同的线程。 – 2011-05-19 11:58:45
@Loc好吧,事情变得更加复杂。我想你必须保留一个Map'
尝试指示小程序使用下列财产Applet标记内使用单独的JVM:
<param name="separate_jvm" value="true" />
spring bean默认情况下是singleton,但您可以使用singleton = false属性更改该bean。 – sinha 2011-05-19 11:34:17
@sinha但是会解决错误的问题 – 2011-05-19 11:47:11