Spring WS - 概述
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 映射到对象 − 可以使用存储在消息有效负载、SOAP 操作标头中的信息或使用 XPath 表达式将基于 XML 的请求映射到任何对象。
多种 API 支持解析 XML − 除了用于解析传入 XML 请求的标准 JAXP API(DOM、SAX、StAX)外,还支持 JDOM、dom4j、XOM 等其他库。
多 API 支持编组 XML− Spring Web Services 使用其 Object/XML Mapping 模块支持 JAXB 1 和 2、Castor、XMLBeans、JiBX 和 XStream 库。 对象/XML 映射模块也可用于非 Web 服务代码。
基于 Spring 的配置 − Spring Web Services 使用 Spring Application Contexts 进行配置,其架构与 Spring Web MVC 的架构相似。
集成的 WS-Security 模块 − 使用 WS-Security 模块,您可以对 SOAP 消息进行签名、加密、解密或认证。
支持 Acegi 安全 − 使用 Spring Web 服务的 WS-Security 实现,Acegi 配置可用于您的 SOAP 服务。
体系结构
Spring-WS 项目由五个主要模块组成,如下所述。
Spring-WS Core − 它是主要模块,提供像WebServiceMessage 和SoapMessage 这样的中央接口、服务器端框架、强大的消息分发能力和支持类来实现Web 服务端点。 它还提供 Web Service 消费者客户端作为 WebServiceTemplate。
Spring-WS Support − 该模块提供对 JMS、电子邮件等的支持。
Spring-WS Security − 该模块负责提供与核心 Web 服务模块集成的 WS-Security 实现。使用这个模块,我们可以添加主体令牌、签名、加密和解密 SOAP 消息。 该模块允许使用现有的 Spring Security 实现进行身份验证和授权。
Spring XML − 该模块为 Spring Web 服务提供 XML 支持类。 此模块由 Spring-WS 框架内部使用。
Spring OXM − 该模块为 XML 与对象映射提供支持类。