高级问题 - 我正在开发一个Spring MVC / Spring数据项目,通过Spring Repositories搜索数据库中的表。我正在搜索的表格将包含数千条,即使不是数万条记录。我希望在使用该应用程序的整个过程中在List
内保留这些记录,直到满足List
将被重置或删除的条件。
我的问题是,将此List
存储在HttpSession
中是否可行?
List
,是否存在安全问题?快速查看用户会话信息以及4个对象的小列表(可能是数千个)
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
提前致谢
答案 0 :(得分:2)
我会将它们存储在缓存中但不会存储在会话中。您可以使用BigMemory Terracotta(http://terracotta.org/products/bigmemory)或memcache等外部缓存(如果您在EC2中运行应用程序,则Amazon提供易于使用的缓存)。这将比您的服务器JVM堆更具扩展性。
另一个想法是在缓存中存储用户对象的引用与用户对象,现在在会话中,您只能存储ID。这样,您的会话只保存数字而不是整个对象