Grails ehcache.xml自定义缓存配置

时间:2013-04-09 07:47:16

标签: caching grails ehcache grails-2.0

已创建用于缓存配置的ehache.xml。 但是此文件中的设置仅适用于hibernate 2L缓存 对于自定义缓存(例如缓存服务方法调用: @Cacheable('someCache'))缓存插件设置不起作用

<cache name="someCache" maxElementsInMemory="100" timeToLiveSeconds="86400" timeToIdleSeconds="86400"/>

但如果在Config.groovy中设置 - 它可以正常工作

grails.cache.config = {
  cache {
    name 'someCache'
    timeToIdleSeconds 86400
    timeToLiveSeconds 86400
    maxElementsInMemory 100
  }
}

springcache 插件一样,我尝试共享cacheManager

cacheManager(EhCacheManagerFactoryBean) {
    shared = true
}

哪里没有结果

现在我必须在两个地方编写配置,并使用 grailsCacheManager.cacheManager &amp;进行缓存管理。 CacheManager.instance

有什么想法吗?

UPD: 已创建Config.groovy中的配置

import  grails.test.Test
grails.cache.config = {
  domain {
    name Test
    timeToIdleSeconds 3600
    timeToLiveSeconds 3600
    maxElementsInMemory 50000
  }
  cache {
    name 'myCache'
    timeToIdleSeconds 86400
    timeToLiveSeconds 86400
    maxElementsInMemory 1000
  }
  defaults {
    eternal false
    overflowToDisk false
    diskPersistent false
    timeToIdleSeconds 600
    timeToLiveSeconds 3600
    memoryStoreEvictionPolicy 'LRU'
  }
}

域:

package grails.test
class Test {
  static mapping = {
    cache 'nonstrict-read-write'
    version false
  }
}

在控制器中我打电话:

Test.get(params.id)

但缓存为空: grails.test.Test cur size:0

自定义缓存“myCache” - 工作

1 个答案:

答案 0 :(得分:1)

看看Grails ehcache插件documentation。它包含的部分解释了如何使用Grails缓存插件DSL配置Hibernate二级缓存。寻找“Hibernate二级缓存”和“Hibernate域类二级缓存”