我有一个Hibernate + Ehcache + Spring MVC webapp,它以非常标准的方式设置:
控制器 - >服务类 - > DAO类 - > DB
该应用程序是一个REST API,它使用XML响应HTTP GET请求。一切都按预期工作。数据库仅在需要时才会被命中 - 否则结果来自Ehcache。
我想要的是在每个请求的基础上使用/不使用缓存。我当然希望默认行为是使用缓存,但是当" nocache = 1"参数传入,不应使用缓存,而应该读取数据库。
我开始添加" useCache"参数到我的服务类方法,然后到DAO类,但感觉不对。有没有更好/更好的方法来做到这一点?也许使用某种servlet过滤器?
答案 0 :(得分:0)
这是一个想法,但我不确定它是否合适。
编写2个方法,一个用query.setCacheable(true);
,另一个用普通方法。现在,当您可以根据需要使用这些方法时,即需要缓存时和不需要缓存时。
以下是article,其中提到了查询缓存。