使用Spring-Cache的兩條限制

Spring-Cache的註解實現原理是Spring AOP,而Spring AOP的默認模式是代理(mode="proxy"),所以註定了以下兩條限制:
基於註解的緩存僅適用於public方法
基於註解的緩存僅適用於Bean的外部調用,即某bean的methord1 調用自身的methord2時,緩存不會生效
如果要解決上述限制,考慮Spring AOP配置爲AspectJ的方式(mode="aspectj").


Method visibility and cache annotations
When using proxies, you should apply the cache annotations only to methods with public visibility. 
If you do annotate protected, private or package-visible methods with these annotations, no error is raised, 
but the annotated method does not exhibit the configured caching settings. 
Consider the use of AspectJ (see below) if you need to annotate non-public methods as it changes the bytecode itself.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章