我正在使用 Tangosol Coherence v3.2.2b371。我可以通过NamedCache api缓存未实现Serializable的对象吗?或者这取决于配置?
编辑:为澄清起见,我正在尝试缓存已编译的javax.xml.xpath.XPathExpression对象。
我正在使用 Tangosol Coherence v3.2.2b371。我可以通过NamedCache api缓存未实现Serializable的对象吗?或者这取决于配置?
编辑:为澄清起见,我正在尝试缓存已编译的javax.xml.xpath.XPathExpression对象。
要将对象存储在缓存中,它必须是可序列化的,但不必实现可序列化。具体来说,它可以使用在时间和内存上比 Serializable 更高效的POF 。
POF 确实需要一些额外的配置,这在我链接到的文章中进行了描述。
我猜测(只是猜测)答案是否定的。但是,请查看 PortableObject 接口。这应该是 java.io.Serializable 的替代方案,但出于性能原因。您应该检查它是否可以用来替换 Serializable 接口。
从 3.4 开始,Coherence 可以缓存不可序列化但支持 POF(PortableObject 或具有已注册 PofSerializer 的对象)的对象。
在那个 POF(或任何其他自定义序列化器)不能用作存储(在支持映射内)和集群内的传输格式(在 TCMP 协议上)之前,它仅用作 TCP*Extend 中的传输协议.
这取决于配置。如果您需要存储不支持序列化的对象,则需要有一个 com.tangosol.io.Serializer 实现,该实现可以代表不可序列化的对象进行序列化。您可能会发现,对于常见情况,例如 PofSerializer 已经支持此功能。