我有一个以非常标准的方式设置的 Hibernate + Ehcache + Spring MVC webapp:
控制器 -> 服务类 -> DAO 类 -> DB
该应用程序是一个 REST API,它使用 XML 响应 HTTP GET 请求。一切都按预期工作。数据库仅在需要时才被命中——否则结果来自 Ehcache。
我想要的是在每个请求的基础上使用/不使用缓存。当然,我希望默认行为是使用缓存,但是当传入“nocache=1”参数时,不应该使用缓存,而是应该读取数据库。
我开始将“useCache”参数添加到我的服务类方法,然后添加到 DAO 类,但感觉不对。有没有更好/更好的方法来做到这一点?也许使用某种 servlet 过滤器?