我有一个使用 Spring 的 java 应用程序。 Spring beans 是单例的。当我将应用程序部署为小程序,并且用户在浏览器的不同选项卡中打开时,应用程序实例共享相同的 spring bean 并导致一些问题。那么,我们有没有办法在不同的 JVM 实例中强制打开每个小程序,或者有什么建议来处理这个问题?
谢谢。
最佳答案
Spring Bean 在其上下文中是单例,而不是经典的每虚拟机单例。所以我想说问题是小程序显然共享相同的 Spring 上下文(它们不应该)
<小时/>回复评论:
ServiceProvider.getContextInstace().getService(name...).
让这个 ServiceProvider 使用 ThreadLocal
怎么样?在内部存储其上下文(每个小程序通常应该只有一个线程,对吧?)
关于java - 小程序单例spring beans问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057935/