【问题标题】:Declarative cache container setup — is it possible?声明式缓存容器设置——可能吗?
【发布时间】:2017-12-06 19:02:05
【问题描述】:

我正在使用 Wildfly 10.1.0 + Infinispan 8.2.4.Final + 缓存 API 1.0.0 试图以最小的努力在我的应用程序中启用 Infinispan Jcache 拦截器,如果可能的话没有编程设置。 我想让这样的注释工作来存储一些字典:

@CacheResult(cacheName = "dictionary", cacheKeyGenerator = MyCacheKeyGeneratorImpl.class)  
public List getDictionary() {  
   ...  
}  

我最初开始这项活动是因为我错过了 Spring @Cacheable 注释(我们目前不使用 Spring config/CDI,只有一些库,如 Spring Data JPA Repositories)。 所以我下载了 Infinispan Wilfly/EAP 模块,将其解压到 Wilfly 模块文件夹,并将其添加到 jboss-deployment-structure.xml:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
  <deployment>
  <dependencies>
  <module name="org.infinispan" slot="ispn-8.2" services="export"/>
  <module name="org.infinispan.cdi" slot="ispn-8.2" services="export"/>
  <module name="org.infinispan.jcache" slot="ispn-8.2" services="export"/>
  </dependencies>
  </deployment>
</jboss-deployment-structure>

现在注释被处理并且一些默认的缓存容器被用来创建“字典”缓存。现在我想微调这个缓存容器。 注入infinispan配置的常用方法是什么?是否可以将模块设置插入到主 Wilfly 配置文件(standalone.xml)中以像这样定义这个缓存容器,或者在单独的文件中指定它们?

<cache-container name="JCacheContainer" default-cache="default" module="org.infinispan.jcache">
  <local-cache name="default">
   <transaction mode="NONE"/>
   <eviction strategy="LRU" max-entries="1000"/>
   <expiration max-idle="3600000"/>
  </local-cache>
  <local-cache name="dictionary">
   <locking acquire-timeout="15000" isolation="REPEATABLE_READ"/>
   <transaction locking="PESSIMISTIC" mode="NONE"/>
   <eviction strategy="LRU" max-entries="100000"/>
   <expiration lifespan="15000" max-idle="15000"/>
  </local-cache>
</cache-container>

非常感谢任何帮助。

【问题讨论】:

    标签: wildfly infinispan jcache


    【解决方案1】:

    可以在Infinispan Integration Tests 中找到此类配置的工作示例。唯一的区别是 Infinispan 部署在 WAR 文件中,而不是放在模块中。

    您只需将infinispan.xml 放入WEB-INF 目录并使用正确的beans.xml

    另一个使用模块和 CDI 的示例可以在 JBoss Data Grid Quickstarts 中找到。该示例中唯一缺少的部分是 JCache。

    最后,您可能会发现对 Infinispan 用户指南中的 JCache documentation paragraph 感兴趣。

    【讨论】:

    • 非常感谢。我终于得到了我想要的 Ehcache,但我会留下这个问题供大家参考。
    • 很抱歉,我们无法为您提供帮助。如果您可以在 Github 或类似网站上分享您的基于 Ehcache 的解决方案,我们可以对其进行检查,看看我们将来如何改进。听起来怎么样?
    • @GalderZamarreño 感谢您的回答,我将制作一个通用的 ehcache 使用案例并尽快发布供您参考。
    猜你喜欢
    • 2012-09-17
    • 2012-09-24
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2013-01-28
    相关资源
    最近更新 更多