在基于Spring的Web应用程序中将用户数据存储在Cache / session中

时间:2012-12-21 20:35:52

标签: hibernate session caching web-applications spring-mvc

在我的项目中,我们为user.user提供搜索功能,可以设置2个可用的搜索参数值。在搜索中我们获取搜索结果并将搜索参数(由用户选择)存储在数据库中(这导致严重性能问题),以便下次当用户进入搜索页面时,他的上一个搜索参数会在页面加载时加载。

我想将搜索参数存储在会话或缓存中(在整个用户会话期间),当用户注销时将其提交到数据库,而不是在每次搜索时提交到数据库。当用户访问搜索页面时,DAO会检查值首先在缓存/会话中搜索参数,然后尝试从DB中获取。 任何人都可以建议解决这个问题 使用的技术 - Spring 3+ Hibernate 3.6 + Tomcat 6 + EHCache + JSP

1 个答案:

答案 0 :(得分:1)

看看Spring EhCache项目。它基本上缓存了给定某个(一组)方法签名值的方法的返回值。有一些注意事项,例如类必须实现一个接口和方法args应该是一个原语,String或一个可序列化的类(至少实现哈希代码)。

首先获取ehcache.xml conf文件可能很棘手,因为您确实需要阅读文档。但是一旦设置,它实现起来非常简单,而且速度很快。

因此,您需要编写方法:从UI填充搜索参数,返回它们的方法(缓存),将其存储在数据库中的另一种方法,然后使缓存无效/清除。