写点什么

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

评论

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

后端新手如何从 0 到 1 打造一款 Apache APISIX 插件

API7.ai 技术团队

后端 插件 Apache APISIX APISIX 网关

Mybatis3 源码解析系列

Java mybatis

开源demo| 你画我猜——让你的生活更有趣

anyRTC开发者

音视频 互动白板 开源demo 你画我猜 社交娱乐

web前端培训: Vue3面试考点分享

@零度

前端开发 Vue3

HTTP缓存协议实战

vivo互联网技术

缓存 浏览器 服务器 HTTP

第十二节:Springboot多环境配置

入门小站

spring-boot

如何选择充血模型和贫血模型

蜜糖的代码注释

DDD 领域建模 2月月更

前端技术分享:页面性能优化问题复盘

有道技术团队

前端

Android 12 “致命”崩溃解决之路

阿里巴巴终端技术

android 崩溃分析 客户端 UC内核

移动开发平台WorkPlus | 快速实现企业移动应用集成化

WorkPlus

X6在数栈指标管理中的应用

袋鼠云数栈

Java 大数据 前端

Java&Go高性能队列之channel性能测试

FunTester

Go 性能测试 队列 channel FunTester

MyBatis Demo 编写(2)结果映射转换处理

Java mybatis

3种基于深度学习的有监督关系抽取方法

华为云开发者联盟

文本检测 区域重组 文本检测算法 PixelLink TextSnake

【C语言】一篇速通常量变量

謓泽

编程语言 C语言 2月月更 常量变量

架构训练营模块二作业

苍狼

作业 模块二 架构训练营5期

【高并发】深入解析Callable接口

冰河

Java 并发编程 多线程 高并发 异步编程

与Karmada一起航行:海量节点的多集群管理

华为云原生团队

容器 云原生 k8s k8s多集群管理 多云管理

java培训:JVM 锁的优化和逃逸分析

@零度

JVM JAVA开发

2022 年值得关注的 十大 DevOps 最佳实践

SoFlu软件机器人

mark: centos 镜像下载地址

webrtc developer

Linux centos

微服务从代码到k8s部署应有尽有系列(二、网关)

万俊峰Kevin

微服务 RPC web开发 go-zero Go 语言

Linux系统编程-进程间通信(共享内存)

DS小龙哥

Linux 共享内存 2月月更

设计模式【15】--从审批流中学习责任链模式

秦怀杂货店

Java 设计模式

启发式智能任务调度的探索

鲸品堂

算法 函数 任务调度

文本检测算法新思路:基于区域重组的文本检测

华为云开发者联盟

文本检测 区域重组 文本检测算法 PixelLink TextSnake

Kubernetes集群统一日志管理方案(Elasticsearch+Filebeat+Kibana+Metricbeat)搭建教程

山河已无恙

Kubernetes 2月月更

翟佳:从技术工程师到「网红」开源创业者

腾源会

开源 开源公司

大数据培训:Flink全链路延迟的测量方式及原理

@零度

flink 大数据开发

国内首款! 亚信科技数据库AntDB亮相中国信通院性能测试工具发布会

亚信AntDB数据库

【OH干货】如何向OpenHarmony社区提交代码

拓维信息

OpenHarmony

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