已创建用于缓存配置的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” - 工作
答案 0 :(得分:1)
看看Grails ehcache插件documentation。它包含的部分解释了如何使用Grails缓存插件DSL配置Hibernate二级缓存。寻找“Hibernate二级缓存”和“Hibernate域类二级缓存”