Infinispan是JBoss 7上的默认缓存提供程序。如果您想要一个应用程序服务器附带的解决方案,那么您将不得不坚持这个框架。
对于JPA 实体,二级缓存已经存在(实际上是预定义的 Infinispan 缓存)。只需按照JPA 参考指南开始。
如果您需要更通用的解决方案,您还可以创建自定义Infinispan缓存。假设您在 JBoss 7 模式下运行ha
配置文件domain
(基本集群模式):
<profile name="ha">
...
<subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="cluster">
...
<cache-container name="myCacheCont" default-cache="myCache">
<!-- Adjust replication settings below (sync/async etc.) -->
<transport lock-timeout="60000"/>
<replicated-cache name="myCache" mode="SYNC" batching="true">
<locking isolation="REPEATABLE_READ"/>
</replicated-cache>
</cache-container>
</subsystem>
...
</profile>
在这种情况下,可以通过标准@Resource
查找获得缓存引用:
@Stateless
public class MyEJB implements SomeService {
@Resource(lookup="java:jboss/infinispan/myCacheCont")
private org.infinispan.manager.CacheContainer container;
...
void doSomethingWithCache() {
org.infinispan.Cache cache = container.getCache("myCache");
...
cache.put(...); // Data will be replicated to different nodes, if configured properly
}
}
不要忘记org.infinispan
在项目中添加为模块依赖项。