使用javax.activation.DataHandler的主要原因是什么
它是为了促进网络上不实现Serializable的对象的传输吗?
例如,我已经看到文件从本地文件系统转换为字节,然后创建具有这些字节的DataHandler,并在网络上传输DataHandler。
这就是使用DataHandler的原因吗?
发布于 2011-03-11 06:37:55
我将以API entry for DataHandler中描述的开头开始
DataHandler类为许多不同来源和格式的数据提供了一致的接口。它使用DataContentHandlers管理简单的流到字符串的转换和相关操作。
诚然,这不是最清晰的描述。DataHandler与XML和SOAP有关,您可以在the use tab of its API page中看到这一点。和您一样,我也用它来表示上传的文件的数据,因为它是从一个web服务组件发送到另一个web服务组件进行处理的。
DataHandler实现的Transferable接口并不完全是指序列化处理的那种“传输”。它是关于程序中独立组件或独立程序之间的信息传输,而不是保存对象以供以后使用。有关更多信息,请参阅API entry for Transferable。您会注意到,它链接到与DataHandler没有多大关系的the Drag 'n' Drop Java Tutorial,但演示了Transferable的用法。
发布于 2013-12-03 08:05:30
还有一些性能方面的考虑因素,比如对SOAP附件使用javax.activation.DataHandler将提高性能。
例如,正如Oracle "...Improved性能:非正式测试表明,使用DataHandler包装器使图像/gif MIME类型的吞吐量翻了一番,文本/xml或图像/*类型的java.awt.Image吞吐量增加了大约1.5倍……“这是来自LINK的
其他参考文献
MTOM LINK上
https://stackoverflow.com/questions/5263516
复制相似问题