2012-12-21 80 views
0

在我的项目,我们提供给user.user可以设置2打搜索参数值available.On搜索,我们获取搜索结果加上存储searchparameters搜索功能(这是(这是由用户选择的)(这导致严重的性能问题),所以下一次当用户来到搜索页面时,他的先前的搜索参数在页面加载时被加载。在Spring基于Web的应用程序缓存/会话存储用户数据

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

+0

所以你的问题不缓存。它在搜索结果/存储参数处理中表现不佳。在说“我们需要缓存!”之前修复损坏的内容。分析为什么这部分缓慢,并解决这个问题。缓存不是一个神奇的子弹。 – atrain

+0

冷静我的朋友。如果您了解应用程序的工作方式,我会再次向您解释问题所在。假设一个用户进行背靠背15个searchs,所以不是写入数据库15倍保存搜索参数,我想缓存搜索参数,并将其写入到数据库时,用户注销(每次输入搜索参数到数据库它覆盖以前保存的特定用户的搜索参数) – user1922329

回答

1

任何解决方案看一看的Spring EhCache项目。它基本上缓存给定某个(一组)方法签名值的方法的返回值。有相当多的警告,例如类必须实现一个接口和方法参数应该是原始类型,字符串或可序列化的类(至少实现哈希代码)。

获取ehcache.xml中的conf文件权限可以在第一次是棘手,因为你真的需要阅读的文档。但是一旦安装完成,它的实施非常简单,而且速度很快。

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

+0

我想存储用户特定的数据。 我不知道如何配置缓存来存储每个用户每个会话的数据,而不是特定于应用程序的数据 – user1922329

相关问题