4.5. 存储 Marshalled Java 对象


Java Hot Rod 客户端可以处理代表实体的 Java 对象,并执行 marshalling 来序列化和反序列化对象到 byte[] 数组。C++、C# 和 Javascript Hot Rod 客户端也可以使用相应的语言处理对象。

如果您在缓存中存储条目为 marshalled Java 对象,您应该使用 marshalled 存储的 MediaType 配置缓存。

流程

  1. 指定与您的 marshaller 实现匹配的 MediaType。

    • ProtoStream marshaller :将 MediaType 配置为 application/x-protostream
    • JBoss marshalling: 将 MediaType 配置为 application/x-jboss-marshalling
    • Java serialization:将 MediaType 配置为 application/x-java-serialized-object
  2. 配置您的客户端。

由于 REST 客户端最适合处理文本格式,因此您应该对键使用 java.lang.String 等原语。否则,REST 客户端必须使用受支持的二进制编码以 bytes[] 的形式处理密钥。

REST 客户端可以读取 XML 或 JSON 格式的缓存条目的值。

相等注意事项

当以二进制格式存储数据时,Data Grid 将 WrappedBytes 接口用于键和值。这个打包程序类以透明的方式按照需求处理序列化和解序列化,内部可能对对象本身的引用,或者对象的序列化字节数组表示。这对相等的行为有影响,如果您对键实施 equals () 方法,则必须注意这一点。

wrapper 类的 equals () 方法可以比较二进制表示(字节数组)或委托给嵌套对象实例的 equals () 方法,具体取决于在比较时两个实例是否被序列化或反序列化形式。如果比较的一个实例采用一种形式,另一个形式采用另一种形式,则一个实例被序列化或反序列化。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat