缓存插件未缓存

时间:2018-12-03 17:34:09

标签: caching grails groovy

一些明智的专家可以帮我使缓存插件正常工作吗?我得到了使用以下项目的项目:

  • Grails 3.3.0
  • 等级3.0
  • GORM 6.1.6。发行版
  • 缓存插件4.0.0

我正在遵循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无效。

0 个答案:

没有答案