1.3.2 Spring Portfolio

当谈论 Spring 时,其实它远远超出我们的想象。事实上,Spring 远不是 Spring 框架所下载的那些。如果仅仅停留在核心的 Spring 框架层面,我们将错过 Spring Portfolio 所提供的巨额财富。整个 Spring Portfolio 包括多个构建于核心 Spring 框架之上的框架和类库。概括地讲,整个 Spring Portfolio 几乎为每一个领域的 Java 开发都提供了 Spring 编程模型。

或许需要几卷书才能覆盖 Spring Portfolio 所提供的所有内容,这也远远超出了本书的范围。不过,我们会介绍 Spring Portfolio 中的一些项目,同样,我们将体验一下核心框架之外的另一番风景。

Spring Web Flow

Spring Web Flow 建立于 Spring MVC 框架之上,它为基于流程的会话式 Web 应用(可以想一下购物车或者向导功能)提供了支持。我们将在第 8 章讨论更多关于 Spring Web Flow 的内容,你还可以访问 Spring Web Flow 的主页

Spring Web Service

虽然核心的 Spring 框架提供了将 Spring bean 以声明的方式发布为 Web Service 的功能,但是这些服务是基于一个具有争议性的架构(拙劣的契约后置模型)之上而构建的。这些服务的契约由 bean 的接口来决定。Spring Web Service 提供了契约优先的 Web Service 模型,服务的实现都是为了满足服务的契约而编写的。

本书不会再探讨 Spring Web Service,但是你可以浏览 站点 来了解更多关于 Spring Web Service 的信息。

Spring Security

安全对于许多应用都是一个非常关键的切面。利用 Spring AOP,Spring Security 为 Spring 应用提供了声明式的安全机制。你将会在第 9 章看到如何为应用的 Web 层添加 Spring Security 功能。同时,我们还会在第 14 章重新回到 Spring Security 的话题,学习如何保护方法调用。你可以在 主页 上获得关于 Spring Security 的更多信息。

Spring Integration

许多企业级应用都需要与其他应用进行交互。Spring Integration 提供了多种通用应用集成模式的 Spring 声明式风格实现。

我们不会在本书覆盖 Spring Integration 的内容,但是如果你想了解更多关于 Spring Integration 的信息,我推荐 Mark Fisher、Jonas Partner、Marius Bogoevici 和 Iwein Fuld 编写的《Spring Integration in Action》;或者你还可以访问 Spring Integration 的主页

Spring Batch

当我们需要对数据进行大量操作时,没有任何技术可以比批处理更胜任这种场景。如果需要开发一个批处理应用,你可以通过 Spring Batch,使用 Spring 强大的面向 POJO 的编程模型。

Spring Batch 超出了本书的范畴,但是你可以阅读 Arnaud Cogoluegnes、Thierry Templier、Gary Gregory 和 Olivier Bazoud 编写的 《Spring Batch in Action》,或者访问 Spring Batch的主页

Spring Data

Spring Data 使得在 Spring 中使用任何数据库都变得非常容易。尽管关系型数据库统治企业级应用多年,但是现代化的应用正在认识到并不是所有的数据都适合放在一张表中的行和列中。一种新的数据库种类,通常被称之为 NoSQL 数据库,提供了使用数据的新方法,这些方法会比传统的关系型数据库更为合适。

不管你使用文档数据库,如 MongoDB,图数据库,如 Neo4j,还是传统的关系型数据库,Spring Data 都为持久化提供了一种简单的编程模型。这包括为多种数据库类型提供了一种自动化的 Repository 机制, 它负责为你创建 Repository 的实现。

我们将会在第 11 章看到如何使用 Spring Data 简化 Java Persistence API(JPA)开发,然后在第 12 章,将相关的讨论拓展至几种 NoSQL 数据库。

Spring Social

社交网络是互联网领域中新兴的一种潮流,越来越多的应用正在融入社交网络网站,例如 Facebook 或者 Twitter。如果对此感兴趣,你可以了解一下 Spring Social,这是 Spring 的一个社交网络扩展模块。

不过,Spring Social 并不仅仅是 tweet 和好友。尽管名字是这样,但 Spring Social 更多的是关注连接(connect),而不是社交(social)。它能够帮助你通过 REST API 连接 Spring 应用,其中有些 Spring 应用可能原本并没有任何社交方面的功能目标。

限于篇幅,我们在本书中不会涉及 Spring Social。但是,如果你对 Spring 如何帮助你连接 Facebook 或 Twitter 感兴趣的话,可以查看网址 接入 facebook接入 twitter 中的入门指南。

Spring Mobile

移动应用是另一个引人瞩目的软件开发领域。智能手机和平板设备已 成为许多用户首选的客户端。Spring Mobile 是 Spring MVC 新的扩展模 块,用于支持移动 Web 应用开发。

Spring for Android

Spring Mobile 相关的是 Spring Android 项目。这个新项目,旨在通过 Spring 框架为开发基于 Android 设备的本地应用提供某些简单的支持。最初,这个项目提供了 Spring RestTemplate 的一个可以用于 Android 应用之中的版本。它还能与 Spring Social 协作,使得原生应用可以通过 REST API 进行社交网络的连接。

本书中,我不会讨论 Spring for Android,不过你可以通过 spring-android 了解更多内容。

Spring Boot

Spring 极大地简化了众多的编程任务,减少甚至消除了很多样板式代码,如果没有 Spring 的话,在日常工作中你不得不编写这样的样板代码。Spring Boot 是一个崭新的令人兴奋的项目,它以 Spring 的视角, 致力于简化 Spring 本身。

Spring Boot 大量依赖于自动配置技术,它能够消除大部分(在很多场 景中,甚至是全部)Spring 配置。它还提供了多个 Starter 项目,不管你使用 Maven 还是 Gradle,这都能减少 Spring 工程构建文件的大小。 在本书即将结束的第 21 章,我们将会学习 Spring Boot。

Last updated