我可以配置Infinispan在特定缓存上使用JavaSerializationMarshaller()并在其他缓存上使用protobuf吗?

时间:2020-07-29 05:02:12

标签: java serialization infinispan infinispan-10

我正在尝试从Infinispan 8.2.11.Final升级到Infinispan 10.1.8.Final。现在,Infinispan现在默认使用协议缓冲区。 Hibernate使用Infinispan缓存,其中还包含一些应用程序对象。

我可以如下设置全局编组器:

    holder.getGlobalConfigurationBuilder()
          .serialization()
          .marshaller( new JavaSerializationMarshaller() )
          .whiteList().addClasses( CLASSES );

但是,如果这样做,则有必要将所有休眠类(例如org.hibernate.cache.internal.CacheKeyImplementation和其他休眠类)列入白名单。

是否可以在用于应用程序对象的缓存上设置编组器,以便在允许Hibernate使用protobuf的同时继续对应用程序对象使用Java序列化?

1 个答案:

答案 0 :(得分:1)

不。编组器对所有缓存都是全局的。

您可以执行以下操作将Hibernate软件包添加到白名单:

.whiteList().addRegexps("org\\.hibernate.*");

在Infinispan文档herehere中检查更多信息。

offtopic:最后一个稳定版本是11.0.1.Final。