当前位置: 首页 > 知识库问答 >
问题:

JCache:基于声明性配置以编程方式构建复制缓存

卓新知
2023-03-14

我使用JCache和Infinispan作为它的实现。JCache不提供任何与集群相关的API,所以我在XML配置文件中定义了简单的复制缓存配置

<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns="urn:infinispan:config:8.2">
    <cache-container default-cache="default">
        <transport cluster="test-cluster"/>
            <replicated-cache-configuration name="userCacheConfig" mode="SYNC" statistics="true"/>
    </cache-container>
</infinispan>

现在要创建用户缓存,我需要将这种声明性配置与编程配置结合起来,因为一些缓存属性的值(例如过期超时)应该从数据库中检索。有没有办法只使用JCache中的类和接口来做到这一点?

共有1个答案

呼延英奕
2023-03-14

事实证明,当您使用特定名称和运行时配置创建缓存时,Infinispan会查找与要创建的缓存名称同名的已定义配置。如果存在预定义配置,Infinispan会将其与给定的运行时配置相结合。

 类似资料:
  • 我试图在声明性和命令式配置的混合中设置(J)缓存,因为JCache标准没有提供限制缓存可以占用的最大大小的方法。我想尽可能地“独立于提供者”,这样我将来就可以灵活地更改提供者。目前我有使用Java7的限制,所以我相信咖啡因被丢弃了。 我在应用程序中保留了缓存列表和它们条目的持续时间(TTL)。yaml,这是我用属性加载器得到的。然后,我用以下代码创建缓存: 无论我在POM中使用哪个JCache提供

  • 32.5 缓存声明式 XML 配置 如果不想使用注解,可以使用 XML 进行声明式配置缓存。所以不用注解方法的形式,而从外部指定目标方法和缓存指令(类似于声明式事务管理)。以前的例子可以转化为: <!-- the service we want to make cacheable --> <bean class="x.y.service.DefaultBookService"/> <!-- ca

  • 对于缓存声明,抽象提供了一组 Java 注解: @Cacheable 触发缓存机制 @CacheEvict 触发缓存回收 @CachePut 更新缓存,而不会影响方法的执行 @Caching 组合多个缓存操作到一个方法 @CacheConfig 类级别共享系诶常见的缓存相关配置 下面,让我们仔细看看每个注释。 32.3.1 @Cacheable 注解 顾名思义,@Cacheable 用于标识可缓存

  • 我在logback.xml中定义了一个logback appender,它是一个DB appender,但是我想知道是否有任何方法可以使用我自己定义为bean的连接池在java中配置appender。 我发现了类似的事情,但从来没有真正的答案。

  • 问题内容: 这也许是一个有点不寻常的Jenkins查询,但是我们有一个跨很多项目的项目。它们全部基于Linux,但是它们跨越多种体系结构(MIPS,SPARC,ARMv6,ARMv7)。 对于特定的组件,我们将其称为“视频编码器”,因此,我们将有4个项目:mips-video-encoder,sparc-video-encoder等。 每个项目都建立在4个独立的从站上,并带有与其架构相关的标签,即

  • 问题内容: 说我有两个JavaBeans 和。 如果创建一个Person对象的列表,我想编组成这样的东西: 可以使用这里描述的技术: 使用JAXB解组/编组List 通过使用和注释JaxbList,可以将其编组为上述XML。 但是,能够重用相同的类来封送对象列表也很好。实际上,我将有许多其他类型的bean。我可以这样: 但是,理想情况下,最好用类名的复数形式替换“列表”,用类名替换“ item”。