我一直在尝试将SpringCache添加到我的Spring托管服务之一。我将STS用作开发IDE。
这是我所做的:
grails.spring.disable.aspectj.autoweaving = true
springcache {
enabled = true
defaults {
eternal = false
diskPersistent = false
}
caches {
tripCache {
memoryStoreEvictionPolicy = "LRU"
}
}
}
@Cacheable
批注,如下所示: int counter = 0
@Cacheable("testCache")
String testInc(String x) {
return (++counter).toString()
}
def testDashboard() {
[data:testService.testInc("1")]
}
testInc()
总是向我返回一个新值,即连续调用返回1、2、3等,这使我认为缓存不起作用。我是否错过了某些东西并且没有正确打开缓存?我试图查看缓存是否完全正常运行,并在ehching-2.4.6的源代码和CachingAspect的invokeCachedMethod中的设置断点处进行了挂钩,但是当我运行我的应用程序时,上述方法似乎未执行。
我还尝试在缓存中查看“1”的值,并且看起来它为空,即键“1”没有存储在缓存中。我在 Controller 测试方法中添加了以下两行:
Ehcache c = springcacheService.getOrCreateCache("testCache")
String x = c.get("1")
请帮忙!
最佳答案
基本上,我被这里的springcache文档误导了:
http://gpc.github.com/grails-springcache/docs/guide/3.%20Caching%20Service%20Methods.htmlConfig.groovy
应该具有grails.spring.disable.aspectj.autoweaving = false
的true
istead。
希望这对那些陷入同一问题的人有所帮助。