Spring Web Services (Spring-WS) — один из проектов, разработанных Spring Community. Его основной задачей является создание управляемых документами веб-сервисов. Проект Spring Web Services упрощает разработку сервисов SOAP в первую очередь, предоставляет несколько способов создания гибких веб-сервисов, которые могут манипулировать полезными нагрузками XML различными способами.
Веб-сервисы Spring без проблем используют такие концепции Spring, как внедрение зависимостей и конфигурации. Spring-WS требует Spring 3.0 версии. При разработке сначала контракта мы начинаем с WSDL Contract, а затем будем использовать JAVA для реализации требуемого контракта.
В отличие от подхода «последний контракт», когда интерфейсы JAVA генерируют контракт WSDL / XSD. Контракт на основе WSDL остается независимым от реализации JAVA в подходе контракт-первый. В случае, если нам требуется изменить интерфейсы JAVA, нет необходимости сообщать об изменениях, внесенных в существующий контракт WSDL, пользователям веб-служб. Spring-WS стремится обеспечить слабую связь между контрактом WSDL и его реализацией на основе JAVA.
Характеристики
Ниже приведены функции веб-служб Spring.
-
Сопоставление XML с объектами — запросы на основе XML могут быть сопоставлены с любым объектом с использованием информации, хранящейся в полезной нагрузке сообщения, заголовке действия SOAP или с помощью выражения XPath.
-
Поддержка нескольких API для разбора XML — Помимо стандартных API JAXP (DOM, SAX, StAX) для разбора входящих XML-запросов, поддерживаются и другие библиотеки, такие как JDOM, dom4j, XOM.
-
Поддержка нескольких API для маршалирования XML — Spring Web Services поддерживает библиотеки JAXB 1 и 2, Castor, XMLBeans, JiBX и XStream, используя свой модуль сопоставления объектов / XML. Модуль Object / XML Mapping также можно использовать в коде не-веб-сервисов.
-
Конфигурации на основе Spring — Spring Web Services использует контексты приложения Spring для своих конфигураций, имеющих архитектуру, аналогичную Spring Spring MVC.
-
Интегрированный модуль WS-Security. Используя модуль WS-Security, вы можете подписывать, шифровать, дешифровать SOAP-сообщения или аутентифицировать их.
-
Поддержка Acegi Security. Используя реализацию WS-Security веб-служб Spring, можно настроить конфигурацию Acegi для ваших служб SOAP.
Сопоставление XML с объектами — запросы на основе XML могут быть сопоставлены с любым объектом с использованием информации, хранящейся в полезной нагрузке сообщения, заголовке действия SOAP или с помощью выражения XPath.
Поддержка нескольких API для разбора XML — Помимо стандартных API JAXP (DOM, SAX, StAX) для разбора входящих XML-запросов, поддерживаются и другие библиотеки, такие как JDOM, dom4j, XOM.
Поддержка нескольких API для маршалирования XML — Spring Web Services поддерживает библиотеки JAXB 1 и 2, Castor, XMLBeans, JiBX и XStream, используя свой модуль сопоставления объектов / XML. Модуль Object / XML Mapping также можно использовать в коде не-веб-сервисов.
Конфигурации на основе Spring — Spring Web Services использует контексты приложения Spring для своих конфигураций, имеющих архитектуру, аналогичную Spring Spring MVC.
Интегрированный модуль WS-Security. Используя модуль WS-Security, вы можете подписывать, шифровать, дешифровать SOAP-сообщения или аутентифицировать их.
Поддержка Acegi Security. Используя реализацию WS-Security веб-служб Spring, можно настроить конфигурацию Acegi для ваших служб SOAP.
Архитектура
Проект Spring-WS состоит из пяти основных модулей, которые описаны ниже.
Ядро Spring-WS — это основной модуль, который предоставляет центральные интерфейсы, такие как WebServiceMessage и SoapMessage , инфраструктуру на стороне сервера, мощные средства диспетчеризации сообщений и классы поддержки для реализации конечных точек веб-служб. Он также предоставляет клиентский клиент веб-службы в виде WebServiceTemplate .
Поддержка Spring-WS — этот модуль обеспечивает поддержку JMS, электронной почты и т. Д.
Spring-WS Security — этот модуль отвечает за обеспечение реализации WS-Security, интегрированной с основным модулем веб-служб. Используя этот модуль, мы можем добавлять основные токены, подписывать, шифровать и дешифровать SOAP-сообщения. Этот модуль позволяет использовать существующую реализацию безопасности Spring для аутентификации и авторизации.
Spring XML — этот модуль предоставляет классы поддержки XML для Spring Web Services. Этот модуль используется внутри среды Spring-WS.
Spring OXM — этот модуль предоставляет классы поддержки для XML и сопоставления объектов.