AOP無法切入同類調用方法(@Cacheable同類內調用,不走緩存)

最近跟蹤後臺日誌發現,同類調用的查詢方法,沒有查詢緩存還是查詢的數據庫。網上查了查資料,需要做一些配置。

究其原因,是沒有通過代理來調用方法,我們改成通過代理來調用方法,就可以走緩存了。

1.修改spring配置文件

<aop:aspectj-autoproxy proxy-target-class="true" expose-proxy="true"/>

設置expose-proxy屬性爲true,是爲了將代理暴露出來。

2.通過AopContext.currentProxy()可以獲得當前Service的代理類,再通過 ((Service) AopContext.currentProxy()).method(),這種方式調用目標方法,就可以命中緩存了,不再查詢數據庫了。

參考文章:

https://blog.csdn.net/JustForSS/article/details/83008824

https://blog.csdn.net/z69183787/article/details/45622821

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章