12.2. 框架集成


此 Data Grid 发行版本改进了与已知的企业 Java 框架(如 Spring 和 Hibernate)的集成。

12.2.1. Spring 增强

此发行版本为 Data Grid 与 Spring Framework 集成增加了几个改进:

注意

此 Data Grid 发行版本支持 Spring Framework 和 Spring Boot 的特定版本。请参阅 https://access.redhat.com/articles/2435931 支持的配置。

12.2.1.1. 同步获取操作

Data Grid 实施 SPR-9254,以便 get () 方法使用多线程机制返回键值。

如需更多信息,请参阅 org.springframework.cache 界面中 获取 的描述。

12.2.1.2. 异步操作和超时配置

现在,您可以在使用 Data Grid 作为 Spring 缓存供应商时,设置等待读取和写入操作的最大时间。超时允许方法调用异步发生。

使用以下 put () 方法示例来考虑超时前和后的不同:

写超时前

public void put(Object key, Object value, long lifespan, TimeUnit unit) {
      this.cacheImplementation.put(key, value != null ? value : NullValue.NULL, lifespan, unit);
}
Copy to Clipboard Toggle word wrap

写超时后

public void put(final Object key, final Object value) {
      this.nativeCache.put(key, value);
      try {
         if (writeTimeout > 0)
            this.nativeCache.putAsync(key, value != null ? value : NullValue.NULL).get(writeTimeout, TimeUnit.MILLISECONDS);
         else
            this.nativeCache.put(key, value != null ? value : NullValue.NULL);
      } catch (InterruptedException e) {
         Thread.currentThread().interrupt();
         throw new CacheException(e);
      } catch (ExecutionException | TimeoutException e) {
         throw new CacheException(e);
      }
   }
Copy to Clipboard Toggle word wrap

如果您为写入操作配置超时,则调用 putAsync,这是一个"fire-and-forget"调用,不会阻止其他写操作。

如果您没有配置超时,则会调用同步 放置,这会阻止其他写入。

使用 infinispan.spring.operation.read.timeoutinfinispan.spring.operation.write.timeout 设置超时配置。阅读文档中的 配置超时以了解如何。

12.2.1.3. Spring 应用程序的集中式配置属性

如果您在远程客户端模式中将 Data Grid 用作 Spring Cache Provider,您可以在 classpath 的 hotrod-client.properties 中设置配置属性。然后,您的应用程序可以使用该配置创建 RemoteCacheManager

有关可用配置属性的信息,请参阅 org.infinispan.client.hotrod.configuration 软件包描述

12.2.1.4. 检索缓存名称的功能

RemoteCacheManager 类现在包含一个 getCacheNames () 方法,它将缓存名称返回为字符串的 JSON 数组,如 ["cache1", "cache2"]。这个方法包含在 org.springframework.cache.CacheManager 实现中,以便在将 Data Grid 用作 Sping 缓存提供程序时查找定义的缓存名称。

如需更多信息,请参阅 RemoteCacheManager 的 Java 文档。

12.2.1.5. Spring Boot Starter

Data Grid 包括一个 Spring Boot 启动程序,可帮助您快速启动并运行。请参阅 Data Grid Spring Boot Starter

12.2.2. Hibernate Second-level (L2)缓存

Data Grid 与 Hibernate 作为(L2)缓存供应商无缝集成,以提高应用程序的持久层的性能。

Hibernate 为 Java 提供 Object/Relational Mapping (ORM)功能,它是完全兼容的 JPA (Java Persistence API)持久性提供程序。Hibernate 使用第一级(L1)缓存,其中缓存中的对象绑定到会话。作为 L2 缓存提供程序,Data Grid 充当所有会话中对象的全局缓存。

您可以将 Data Grid 配置为 L2 缓存:

  • JPA: persistence.xml
  • spring: application.properties

有关启用 L2 缓存以及不同部署场景的信息,请参阅文档中的 JPA/Hibernate L2 Cache

12.2.3. 以嵌入式模式与红帽 SSO 集成

此发行版本支持使用 Red Hat SSO 来保护 库(embedded) 模式中对 Data Grid 的访问。

如需更多信息,请参阅 secure-embedded-cache Quickstart,并部署并运行演示了与红帽 SSO 集成的示例应用程序。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat