写点什么

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:002357

评论

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

三分钟掌握音频提取 | 在 Rust 中优雅地处理视频音频

Yeauty

rust ffmpeg Video media audio

《Operating System Concepts》阅读笔记:p460-p4470

codists

操作系统

混沌工程没有银弹

FunTester

深入探索ArkUI中的@LocalBuilder装饰器:构建高效可维护的UI组件

李游Leo

HarmonyOS HarmonyOS NEXT

以联接,育栋梁:解码校园中的星河AI网络

脑极体

AI

Fabric8 Kubernetes 教程——Replication、ConfigMap、Secret

FunTester

物化视图详解:数据库性能优化的利器

镜舟科技

StarRocks 携程 物化视图 湖仓 Data Cache

一款体验故障定位的神器

乒乓狂魔

故障定位 AIOPS 可观测

测试技艺 | 在AI极速发展下重塑

技艺的尾巴

人工智能 AI 软件测试 推动软件业变革 测试技艺

What's new in dubbo-go v3.3.0

apache/dubbo-go

dubbo dubbo-go dubbogo Dubbo3

PureBasic 6.20 (macOS, Linux, Windows) - 现代的 BASIC 编程语言及 IDE

sysin

PureBasic

原生APP的性能优化

北京木奇移动技术有限公司

软件外包公司 原生APP开发 APP开发公司

【Redis深度专题】「踩坑技术提升」一文教会你如何在支持Redis在低版本Jedis情况下兼容Redis的ACL机制

码界西柚

redis 权限控制 acl 底层原理 访问控制列表

征程 6X CAMSYS 性能测试方案介绍

地平线开发者

自动驾驶 算法工具链 地平线征程6

【实战解析】淘宝店铺商品全量爬取:item_search_shop API深度指南

Noah

StarRocks 与主流 BI 工具兼容性盘点(Superset/帆软/QuickBI/Tableau)

镜舟科技

MySQL OLAP BI 分析型数据库 StarRocks

混合APP上线时需要的问题

北京木奇移动技术有限公司

软件外包公司 APP开发公司

工作中最常用的 8 种设计模式

不在线第一只蜗牛

设计模式

昇腾AI携手22家伙伴发布大模型应用一体机,让企业AI落地更简单

极客天地

51Talk发布2024年Q4财报:第四季度营业收入同比增长117.3%

财见

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS HPE (慧与) 定制版

sysin

esxi

从青铜到王者系列(1):手把手教你用WSL 2在Windows 11家庭版上安装Docker,开发必备教程!

程序员老王

Leangoo vs ONES:哪个更适合Scrum敏捷开发和SAFe大规模敏捷?

顿顿顿

项目管理 敏捷开发 任务管理 敏捷工具 scrum工具

原生APP和混合APP开发的对比

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包公司

Netty源码—Reactor线程模型二

不在线第一只蜗牛

Java 数据库 Linux

一键部署 GPU Kind 集群,体验 vLLM 极速推理

Se7en

VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护

sysin

vSphere

从投机到可持续发展:ETHDenver 2025 的关键启示!

One Block Community

去中心化 polkadot web3

以太坊兼容智能合约即将登陆 Kusama!Polkadot 迎来智能合约新时代

One Block Community

智能合约 polkadot web3

TCL电子(01070.HK)2024年经调整归母净利润同比翻倍

财见

鸿蒙NEXT开发案例:程序员计算器

zhongcx

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