3

我有一个以非常标准的方式设置的 Hibernate + Ehcache + Spring MVC webapp:

控制器 -> 服务类 -> DAO 类 -> DB

该应用程序是一个 REST API,它使用 XML 响应 HTTP GET 请求。一切都按预期工作。数据库仅在需要时才被命中——否则结果来自 Ehcache。

我想要的是在每个请求的基础上使用/不使用缓存。当然,我希望默认行为是使用缓存,但是当传入“nocache=1”参数时,不应该使用缓存,而是应该读取数据库。

我开始将“useCache”参数添加到我的服务类方法,然后添加到 DAO 类,但感觉不对。有没有更好/更好的方法来做到这一点?也许使用某种 servlet 过滤器?

4

1 回答 1

0

这是一个想法,但不确定它是否正确。

写2个方法,一个with query.setCacheable(true);,一个normal。现在,您何时可以根据需要使用这些方法,即何时需要缓存以及何时不需要。

这是关于查询缓存的文章。

于 2012-04-09T13:46:29.360 回答