2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

2019-Android-高级面试题总结-从java语言到AIDL使用与原理

android 程序员 移动开发

架构实战营模块七 - 王者荣耀商城异地多活架构设计

Yina🌝很浪🌊

#架构实战营

Java 主函数 main 中的关键字 static

HoneyMoose

2019(1),揭秘ARouter路由机制

android 程序员 移动开发

在线文本转二进制工具

入门小站

工具

10天用Flutter撸了个高仿携程App(附小技巧积累总结),小红书安卓面试题目

android 程序员 移动开发

极客时间架构实战营模块7作业

jjn0703

架构实战营

算法,从今天开始

ES_her0

11月日更

10道阿里Android岗必问题摆这儿了,你爱刷不刷!,透彻解析

android 程序员 移动开发

12年高级工程师的“飞升之路”,腾讯大牛教你自己写Android第三方库

android 程序员 移动开发

15个经典面试问题及回答思路,很多人死在了最后一个问题上

android 程序员 移动开发

软件工程师的专业素养解读(二)

卢卡多多

职业素养 软件IT专业 11月日更

tar 备份linux系统

入门小站

Linux

2018年6月份Android上海找工作经历,2021华为Android面试真题解

android 程序员 移动开发

linux系列之: 你知道查看文件空间的两种方法吗?

程序那些事

Linux 操作系统 程序那些事 11月日更

王者荣耀商城异地多活架构设计

Geek_db27b5

王者荣耀商城异地多活架构设计 - 模块 7

刘琦Logan

模块七作业

potti

130-余个相见恨晚的超实用网站(建议收藏),2021年是做Android开发人员的绝佳时机

android 程序员 移动开发

2019-年赚钱最多的-13-个技术岗位,移动开发框架对比

android 程序员 移动开发

2019Android-网络编程总结篇,你想要的三次握手和四次握手

android 程序员 移动开发

架构实现训练营|第7课|作业

Frode

架构实战营

架构实战营 -毕业总结

思梦乐

解决报错:Couldn't create temporary file /tmp/apt.conf.IRqbCz

liuzhen007

11月日更

王者荣耀商城异地多活架构

白开水又一杯

#架构实战营

1549页Android最新面试题含答案,成功入职腾讯

android 程序员 移动开发

2018年6月份Android上海找工作经历(1),android蓝牙开发rom

android 程序员 移动开发

2018年6月份Android上海找工作经历(2),面试安卓开发十大问题

android 程序员 移动开发

2019-阿里、头条、腾讯,小白以及计算机类学生的福音

android 程序员 移动开发

架构实战营 - 模块七作业

Alex.Wu

JavaScript基础篇运算符与表达式

你好bk

JavaScript html 大前端 html/css

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