最近跟踪后台日志发现,同类调用的查询方法,没有查询缓存还是查询的数据库。网上查了查资料,需要做一些配置。
究其原因,是没有通过代理来调用方法,我们改成通过代理来调用方法,就可以走缓存了。
1.修改spring配置文件
<aop:aspectj-autoproxy proxy-target-class="true" expose-proxy="true"/>
设置expose-proxy属性为true,是为了将代理暴露出来。
2.通过AopContext.currentProxy()可以获得当前Service的代理类,再通过 ((Service) AopContext.currentProxy()).method(),这种方式调用目标方法,就可以命中缓存了,不再查询数据库了。
参考文章: