概述
Spring Web Services(Spring-WS)是Spring社区开发的项目之一。 其主要重点是创建文档驱动的Web服务。 Spring Web Services项目促进了契约优先的SOAP Service Development ,提供了多种创建灵活Web服务的方法,可以通过多种方式处理XML有效负载。
Spring Web服务无缝地使用依赖注入和配置等Spring概念。 Spring-WS需要Spring 3.0版本。 通过契约优先开发,我们从WSDL Contract开始,然后使用JAVA来实现所需的合同。
与JAVA接口生成WSDL/XSD契约的契约最后方法相反。 基于WSDL的合同在合同优先方法中仍然独立于JAVA实施。 如果我们需要更改JAVA接口,则无需将现有WSDL合同中所做的更改传达给Web服务用户。 Spring-WS旨在提供WSDL契约与基于JAVA的实现之间的松散耦合。
特点 (Features)
以下是Spring Web Services的功能 -
XML Mapping to Objects - 可以使用Message Payload,SOAP Action Header中存储的信息或使用XPath Expression将基于XML的请求映射到任何对象。
Multiple API Support to parse XML - 除了用于解析传入XML请求的标准JAXP API(DOM,SAX,StAX)之外,还支持其他库,如JDOM,dom4j,XOM。
Multiple API Support to marshal XML - Spring Web Services使用其Object/XML Mapping模块支持JAXB 1和2,Castor,XMLBeans,JiBX和XStream库。 Object/XML Mapping模块也可以用在非Web服务代码中。
Spring based configurations - Spring Web Services将Spring Application Contexts用于具有与Spring Web MVC类似的体系结构的配置。
Integrated WS-Security module - 使用WS-Security模块,您可以签名,加密,解密SOAP消息或对其进行身份验证。
Support for Acegi Security - 使用Spring Web Services的WS-Security实现,Acegi配置可用于您的SOAP服务。
结构 (Architecture)
Spring-WS项目由五个主要模块组成,下面将对其进行说明。
Spring-WS Core - 它是主要模块,提供WebServiceMessage和SoapMessage等中央接口,服务器端框架,强大的消息调度功能以及实现Web服务端点的支持类。 它还提供Web Service使用者客户端作为WebServiceTemplate 。
Spring-WS Support - 该模块为JMS,电子邮件等提供支持。
Spring-WS Security - 该模块负责提供与核心Web服务模块集成的WS-Security实现。 使用此模块,我们可以添加主要令牌,签名,加密和解密SOAP消息。 此模块允许使用现有的Spring Security Implementation进行身份验证和授权。
Spring XML - 此模块为Spring Web Services提供XML支持类。 该模块由Spring-WS框架内部使用。
Spring OXM - 此模块提供XML与对象映射的支持类。