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