首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Spring一起使用Woodstox

与Spring一起使用Woodstox
EN

Stack Overflow用户
提问于 2014-08-13 07:09:04
回答 1查看 1.2K关注 0票数 1

当Spring与JAXB一起用于编组和解编组时,内部使用的是哪个流实现?

代码语言:javascript
复制
response = (AResponse) webSvcTemplate.marshalSendAndReceive(request);

阅读SO查询,发现Woodstox比JAXB更快。然而,在我使用Spring时,Spring实际上负责处理编组和解编组过程中发生的所有事情。

问题是如何强制Spring使用Woodstox流API?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 09:35:48

当Spring与JAXB一起用于编组和解编组时,内部使用的是哪个流实现?

这取决于您启用了哪个WebServiceMessageFactory。默认情况下,Spring使用基于DOM的SAAJ (即SaajSoapMessageFactory),它根本不执行任何流操作,因为整个XML结构都存储在内存中。您可以从SAAJ切换到Axiom (即AxiomSoapMessageFactory),它可以执行基于StAX的流。见参考文档

阅读SO查询,发现Woodstox比JAXB更快。

这实际上取决于上下文:消息的大小、正在运行的硬件等。从个人经验来看,对于“中小型”SOAP消息来说,流的速度并不明显。

另外,您在这里比较苹果和桔子: Woodstox是一个StAX实现,是一个XML解析器。JAXB是一个封送处理库,它使用StAX (但也包括SAX和DOM)等解析器从XML构建Java对象。

然而,在我使用Spring时,Spring实际上负责处理编组和解编组过程中发生的所有事情。

这不是很棒吗?)

问题是如何强制Spring使用Woodstox流API?

简单地将Woodstox放在类路径上就足够了,Spring将自动将其捡起来。不过,您必须切换到Axiom (见上面),才能注意到任何不同之处。即使如此,我也敢打赌,表现上的差异并没有那么大。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25280123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档