写点什么

Spring 发布 Web Services 的 2.3.1 和 2.4.0 版本

  • 2016-09-26
  • 本文字数:1236 字

    阅读完需:约 4 分钟

Spring 最近发布了 Web Services 项目的 2.3.1 和 2.4.0 版本。

2.3.1 是一个小补丁版本,包含了如下的修正:

2.4.0 版本对代码库进行了重构,从而能够运行在最新的 Spring Framework 4.3 Spring Security 4.1 版本上。它的设计也会兼容将来的 Spring 5.0 。依然在 Java 7 上运行的应用可以采用这个新版本。

在 Spring Web Services 的 Web 站点上,对这个项目是这样定义的:

Spring Web Services(Spring-WS)是 Spring 社区的一个产品,它聚焦于创建文档驱动的 Web 服务。Spring Web Services 致力于简化契约优先(contract-first)的 SOAP 服务开发,允许创建灵活的 Web 服务,它支持多种操作 XML 负载的方式,我们可以从中任意选择一种。

人们采用 Spring-WS 会基于多种原因,在寻找遵循 Web 服务最佳实践的 SOAP 技术栈时,大多数人都会被它所吸引。Spring-WS 能够让最佳实践很容易实现。这些实践包括 WS-I basic profile、契约优先的开发模式以及契约和实现的松耦合。

上面所提到的最佳实践其实在 Spring Web Services 诞生之初就已经考虑到了。在 2007 年 1 月份,InfoQ采访了 Spring Web Services 的创建者 Arjen Poutsma ,当时这个项目正处于起步阶段。当问到是什么东西能够让 Spring Web Services 变得如此独树一帜时,他这样回答道:

首先,它完全专注于契约优先的 Web 服务设计。这意味着你必须要编写自己的 XSD Schema,这个 Schema 定义了你要发送的 XML 消息。你可以引用 WSDL 中的 Schema(尽管 Spring Web Services 也可以从 XSD 中生成 WSDL),并借助它来实现验证的目的。

其次,Spring Web Services 提供了契约和实现之间的一种松耦合:没有 wsdl2java 这样工具将契约直接连接到一个类;而是采用你喜欢的任意方式(DOM、SAX、 StAX,甚至 XML 编组技术如 JAXB、Castor、JIBX 或者 XMLBeans),实现处理传入 XML 的端点(endpoint)。将传入的请求映射到端点的方式,完全由你自己决定:默认情况下,我们提供基于消息内容或 SOAPAction header 的映射。这里的主要思想在于,你不用处理方法调用,而是处理 XML 消息。

正如 Poutsma 当时所言,编写自定义的 XSD Schema 是实现契约优先的 Web 服务的组成部分,在 Spring Web Services 的起步指南中,有如何消费生成 SOAP Web 服务的说明,如今还是按照这种方式来实现的。

读者可以参考 Concretepage.com 上综合的基于 SOAP 的样例应用,它会消费自己生成的Web 服务,从而实现对学生数据的跟踪。完整的项目可以在GitHub 仓库上找到,参见 webservices-soap-produce webservices-soap-consume

Spring Web Services 依然像十年前那样独树一帜。与其他所有的 Spring项目一样,Spring Web Services 能够很好地集成到Spring 生态系统之中。它所使用的特性包含 Spring Security ,并且会配置应用上下文,这个上下文能够用到 Spring Framework 框架中的任意项目之中。

查看英文原文 Spring Releases Versions 2.3.1 and 2.4.0 Web Services

2016-09-26 19:002164

评论

发布
暂无评论
发现更多内容

Iceberg0.11与Spark3.0结合

InfoQ_Springup

iceberg

Android屏幕适配,音视频学习指南来咯,文末领取面试资料

欢喜学安卓

android 程序员 面试 移动开发

HTML回流与重绘

空城机

JavaScript html 大前端 5月日更

“智慧丽江 数说未来” 百分点科技助力“智慧丽江”城市大脑上线

百分点大数据团队

百分点科技联合市场研究协会(CMRA)发布《2021五一出行消费体验报告》

百分点大数据团队

2021年4月云主机性能评测报告新鲜出炉,盛大云华东蝉联冠军!

博睿数据

打破思维定式(八)

Changing Lin

Python 分支结构详解

若尘

分支 Python编程 5月日更

微服务化转型,拆就行了?这样做很危险...

BoCloud博云

微服务

v03.06 鸿蒙内核源码分析(时钟任务) | 触发调度谁的贡献最大 | 百篇博客分析HarmonyOS源码

鸿蒙研究站

鸿蒙内核源码分析 百篇博客分析鸿蒙

数据产品经理的圣经,送你一份真贵的礼物 ~~ 年度数据产品经理们的总结

松子(李博源)

大数据 数据产品经理 数据产品

【案例】星环科技原厂数据备份恢复软件,让大数据与AI应用有备无患

星环科技

【实战问题】-- 布隆过滤器的三种实践:手写,Redission以及Guava(2)

秦怀杂货店

Java 布隆过滤器

如何从一段视频中一次性修整多个片段

奈奈的杂社

视频剪辑 视频后期 视频处理

ARST- 日常打卡 4

pjw

百分点数据科学实验室:基于数据驱动的销量预测模型建构

百分点大数据团队

博睿数据携手阿里云,打造以用户为中心的智能运维生态

博睿数据

阿里云 智能运维 博睿数据

零基础学习 NLP-DAY4 - 恶补Python - 基础1

Qien Z.

Python nlp 5月日更

看Amazon Graviton 如何实现优化性能、降低工作负载成本!

亚马逊云科技 (Amazon Web Services)

HashMap

ltc

hashmap

TDH8.0 使用必读 :为什么你需要存算解耦的多模型数据管理平台

星环科技

【案例】星环智能分析工具 Sophon,助力上海农商行搭建决策型人工智能平台

星环科技

交通流量预测,EasyDL带你零代码实战

百度大脑

零代码 EasyDL

apm应用性能管理,非科班程序员求职经历分享,看这一篇就够了

欢喜学安卓

android 程序员 面试 移动开发

antd table input 失焦的问题

blueju

一文掌握 Java8 Stream 中 Collectors 的 24 个操作

看山

Java

差点败北,蚂蚁金服的六轮面试我是怎么撑过来的?(Java岗)

Java架构师迁哥

Web渗透测试:信息收集篇

Thrash

一举拿下贪心算法

Simon郎

Java 大数据 算法 LeetCode 数据结构与算法

这是我金三银四收到的第6个Offer:美团+阿里Java研发岗

Java 程序员 架构 面试

看亚马逊云科技如何助力英国教育科技公司 Firefly 快速落地中国|精选案例

亚马逊云科技 (Amazon Web Services)

Spring发布Web Services的2.3.1和2.4.0版本_Java_Michael Redlich_InfoQ精选文章