【发布时间】:2015-01-14 15:16:26
【问题描述】:
目前我们的应用程序没有利用 spring 集成提供的 xml 转换器。相反,它创建一个 JaxbContext,然后从该 JaxbContext 创建一个 JAXB 解组器/编组器池并将它们连接到服务激活器中。我们创建池是为了不产生为每个操作创建编组器和解组器的成本。
作为重构工作的一部分,我们决定应该使用 xml 转换器。在尝试实现时,我们发现 org.spring.oxm.Marshaller 实现不支持编组器/解组器的池化,因为 Spring 集成的 UnmarshallingTransformer 期望和实现 org.spring.oxm.Marshaller。 org.spring.oxm.Marshaller 的每个实现都会在调用 unmarshal 方法时创建一个新的 javax.xml.bind.Unmarshaller
最后,我已经为我的问题提供了足够的背景信息。为每个解组操作创建一个新的解组器不是性能问题吗?根据jaxb ri documentation,它确实会影响性能。作为反论点,jaxb 项目states 的领导认为它们是轻量级的
【问题讨论】:
-
似乎您已经回答了自己的问题 - YMMV。谨防过早的优化。
-
@closer 这不是基于意见的。
标签: java spring jaxb marshalling spring-integration