Java 在会话中存储大量数据-我应该这样做吗?
这里有一个高级问题——我正在开发一个SpringMVC/Spring数据项目,通过Spring存储库搜索数据库中的表。我正在搜索的表将包含数千条记录,如果不是数万条的话。在使用应用程序的整个过程中,我希望保留Java 在会话中存储大量数据-我应该这样做吗?,java,spring,spring-mvc,session,Java,Spring,Spring Mvc,Session,这里有一个高级问题——我正在开发一个SpringMVC/Spring数据项目,通过Spring存储库搜索数据库中的表。我正在搜索的表将包含数千条记录,如果不是数万条的话。在使用应用程序的整个过程中,我希望保留列表中的这些记录,直到满足重置或删除列表的条件 我的问题是,在我的HttpSession中存储此列表是否可行 这种方法是否会出现性能问题 如果在会话中存储我的列表,是否存在安全问题 对于这样的任务,有没有任何人可以提供的最佳实践 用户会话信息的快速查看以及4个对象的小列表(可能有数千个)
列表中的这些记录,直到满足重置或删除列表的条件
我的问题是,在我的HttpSession
中存储此列表是否可行
- 这种方法是否会出现性能问题
- 如果在会话中存储我的
列表
,是否存在安全问题
- 对于这样的任务,有没有任何人可以提供的最佳实践
用户会话信息的快速查看以及4个对象的小列表(可能有数千个)
提前感谢我会将它们存储在缓存中,但不会存储在会话中。您可以使用诸如BigMemory Terracotta()或memcache之类的外部缓存(如果您在EC2中运行应用程序,Amazon提供了一个易于使用的缓存)。这将比您的服务器JVM堆更具可扩展性
另一个想法是在缓存中存储用户id和用户对象的引用,现在在会话中只能存储id。这样,会话只保存数字,而不保存整个对象
Session Attribute Name Session Attribute Value
searchResults [com.mysite.dto.User@322bfb87,
com.mysite.dto.User@658e75cc,
com.mysite.dto.User@6bd7d82a,
com.mysite.dto.User@27b0e4b6]
userRoles [ROLE_ADMIN]
username admin