我正在尝试提高现有应用程序的启动性能。此应用程序当前正在对另外 8 个应用程序进行服务调用,因此有 8 个服务 bean 扩展了 WebServiceGatewaySupport。这些服务 bean 中的每一个都有自己的 SaajSoapMessageFactory 实例。
<bean id="serviceBean" class="com.test.ServiceBeanA" scope="prototype"
p:marshaller-ref="marshaller"
p:unmarshaller-ref="marshaller"
p:defaultUri="${service.endpoint}"
p:messageSender-ref="messageSender">
<constructor-arg ref="**messageFactoryD**"/>
</bean>
我想知道这是否有必要,或者我是否只能对所有服务 bean 使用 messageFactory 的一个实例。我不确定是否需要担心阻塞消息处理。我之所以考虑这样做是因为每次启动 SaajMessageFactory “Creating SAAJ 1.3 MessageFactory ..”都会花费几秒钟。
同样,每个服务 bean 也有一个 Jaxb2Marshaller 实例。我可以只使用 Jaxb2Marshaller 的所有实例,并结合上下文路径。