0

在我的项目中,我们为用户提供搜索功能。用户可以在 2 打搜索参数中设置值。在搜索时,我们获取搜索结果并将搜索参数(由用户选择)存储在数据库中(这会导致严重的性能问题) ,这样下次用户来搜索页面时,他之前的搜索参数就会在页面加载时加载。

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

4

1 回答 1

1

看看Spring EhCache项目。它基本上缓存给定某个(一组)方法签名值的方法的返回值。有很多警告,例如类必须实现接口和方法 args 应该是原语、字符串或可序列化的类(至少实现哈希码)。

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

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

于 2012-12-22T01:24:37.750 回答