WebServiceGatewaySupport与WebServiceTemplate的优点

时间:2013-03-04 14:32:44

标签: spring-ws

我必须使用Spring WS实现webservice客户端。

我已经在http://static.springsource.org/spring-ws/site/reference/html/client.html阅读了文档,但我不清楚在我的服务类中扩展WebServiceGatewaySupport与直接使用WebServiceTemplate相比有什么好处。

据我所知,WebServiceGatewaySupport只有WebServiceTemplate的一些包装器方法和一些初始化支持。

那么我为什么要扩展WebServiceGatewaySupport而不是直接使用WebServiceTemplate

谢谢!

1 个答案:

答案 0 :(得分:12)

我认为这总结了一切(在您链接的客户参考中找到):

  

或者,考虑从Spring-WS派生   WebServiceGatewaySupport方便基类,它暴露出来   方便的bean属性,以便于配置。 (你不   必须扩展这个基类......它是为了方便而提供的   仅限课程。)

所以,如果WebserviceTemplate提供了你所需要的一切,那就足够了。如果您需要额外的任何内容,可以使用WebServiceGatewaySupport作为示例,了解如何围绕WebserviceTemplate包装您自己的便利方法。

在我的客户端软件中,我只是在我的@Configuration类中配置WebserviceTemplate,如下所示:

@Bean
public WebServiceTemplate webServiceTemplate() {
    WebServiceTemplate template = new WebServiceTemplate();
    template.setMessageFactory(messageFactory());
    template.setDefaultUri(defaultUri);
    template.setMarshaller(marshaller());
    template.setUnmarshaller(marshaller());
    template.setInterceptors(new ClientInterceptor[] {interceptor()});

    return template;
}

(所有方法调用都是对配置中与本示例中不相关的其他方法的引用)。 我可以在我的代码中到处使用该bean来发送消息。