我对Spring很陌生,我只是想知道是否有人可以为我清理一些东西。我想知道的是spring mvc web应用程序的范围是什么。用户是否在使用应用程序时获取应用程序的新实例,或者它是否像每个人都获得相同应用程序实例的单例一样?
例如,如果我将一些数据存储在用户1访问过的控制器中,并且用户2出现并开始使用Web应用程序,则用户2将看到用户1的数据还是完全独立的实例?
我试图找到答案,但没有运气。我已经阅读了应用程序中的不同bean状态,但没有找到有关应用程序本身的任何信息。
非常感谢任何见解, HarleyQ14
答案 0 :(得分:1)
Spring MVC应用程序是一个单例。每个用户都访问同一个应用程序。否则,对于性能和可伸缩性来说,这将是非常糟糕的。
当您说“我在控制器中存储某些数据”时,您是指在控制器对象的字段中存储请求或会话相关数据吗?如果是这样,那么Spring的默认行为将导致您的问题,因为所有内容都是共享的。
如果您想拥有此类请求或会话专用控制器实例,请考虑使用scoped beans。