一些明智的专家可以帮我使缓存插件正常工作吗?我得到了使用以下项目的项目:
我正在遵循https://grails-plugins.github.io/grails-cache/snapshot/guide/index.html#usage来启用缓存,尽管可以毫无错误地启动应用程序,但是@Cacheable注释的方法似乎没有缓存。这是我的myWebApp ** build.gradle **的样子:
:
compile group: 'org.grails.plugins', name: 'cache', version: '4.0.0'
compile group: 'org.grails.plugins', name: 'async'
:
这是我的grails-app / conf / application.yml :
---
grails:
cache:
caches:
name: 'mycache'
---
这是我在grails-app / conf / application.groovy 中启用缓存的方法:
:
grails.cache.enabled = true
grails.cache.clearAtStartup = true
:
这是我的myWebApp / Application.groovy :
package myWebApp
:
class Application extends GrailsAutoConfiguration {
static void main(String[] args) {
GrailsApp.run(Application, args)
}
}
这是带有@Cachable(grails-app / controllers / data / mycontroller.groovy )的控制器中的方法:
package data
:
import org.springframework.cache.annotation.Cacheable
:
@Transactinal
class MyController {
:
@Cacheable(value='mycache')
def getSomeId() {
return anId
}
:
}
在同一控制器中,我正在调用此方法进行快速测试:
:
def index() {
def id = getSomeId()
:
}
:
问题是getSomeId()似乎没有被缓存。每次调用getSomeId()时,主体就会完整执行(我设置了一个断点进行验证)。我只想对这种简单的事情使用快速简单的缓存机制。 我做错了什么?
感谢大家,缓存终于可以在我的项目中工作了。但是,注释的导入必须来自插件:grails.plugin.cache.Cacheable有效,但是org.springframework.annotation.Cacheable无效。