15.5 发布和使用 Web 服务

近几年,最流行的一个 TLA(三个字母缩写)就是 SOA(面向服务的架构)。SOA 对不同的人意味着不同的意义。但是,SOA 的核心理念是,应用程序可以并且应该被设计成依赖于一组公共的核心服务,而不是为每个应用都重新实现相同的功能。

例如,一个金融机构可能有若干个应用,其中很多都需要访问借款者的账户信息。在这种情况下,应用应该都依赖于一个公共的获取账户信息的服务,而不应该在每一个应用中都建立账户访问逻辑(其中大部分逻辑都是重复的)。

Java 与 Web 服务的结合已经有很长的历史了,而且在 Java 中使用 Web 服务有多种选择。其中的大多数可选方案已经以某种方式与 Spring 进行了整合。虽然 Spring 为使用 Java API for XML Web Service(JAX-WS) 来发布和使用 SOAP Web 服务提供了大力支持,但是在本书我不可能涵盖每一个 Spring 所支持的 Web 服务框架和工具箱。

在本节,我们重新回顾下 Spitter 服务示例,不过这次我们将使用 Spring 对 JAX-WS 的支持来把 Spitter 服务发布为 Web 服务并使用此 Web 服务。首先,我们来看一下如何在 Spring 中创建 JAX-WS Web 服务。