领先一步
VMware 提供培训和认证,助您加速发展。
了解更多在过去的十年里,Spring Framework 重塑了企业级 Java,成为企业级 Java 中占主导地位的编程模型。今天,我们发布 Spring Framework 4.0,这是一个全新的 Spring 主要版本,它使 Spring 保持在现代 Java 开发的最前沿。与即将推出的 Spring IO Platform 的其余部分一起,Spring Framework 4.0 有望在未来十年推动基于 JVM 的创新,响应并引领开发者生产力、大数据、云计算、REST 和微服务架构方面的趋势。
Spring Framework 4.0 与 Java 8 完美兼容,也允许应用程序部分或完全用 Groovy 编写,Groovy 是一种简洁的 JVM 动态语言。Spring Framework 4.0 还为 Spring IO 平台的新进展(如 Spring Boot)提供了基础。Spring Boot 几乎完全消除了初始配置工作。像这样提高开发者生产力的选项通常与范围有限的单一用途框架相关联,这些框架根本无法提供 Spring 所拥有的广度、深度以及经过多年生产环境检验的实用性。
Spring IO 的一个主要目标是通过 Spring Boot 等组件让 Java 在开发者生产力方面成为领导者。Edward Hieatt 在 SpringOne 2GX 2013 大会的基调演讲中对 Boot 发表了一些精彩的评论:“Pivotal Labs 一直以来进行了大量的 Ruby on Rails 开发,他们对开发者幸福感和对样板代码的容忍度要求非常高。我们的 Ruby on Rails 开发者在使用带有 Spring Boot 的 Spring Framework 4.0 后,对其生产力和在单一编程模型下解决各种场景的能力印象深刻。” Edward Hieatt 是 Pivotal Labs 的首席运营官,他使用 Spring Framework 4.0 和 Spring Boot 等技术构建了 spring.io 网站。
现代化
Spring Framework 4.0 现在基于预发布的 Java 8 构建版本,提供一流的 Java 8 支持,一旦 OpenJDK 8 在 2014 年 3 月 GA,即可立即用于生产环境。Spring Framework 4.0 不仅能在 Java 8 上运行,它还使得利用新的语言特性变得非常容易和自然,例如 Lambdas、方法引用、JSR-310 日期和时间以及可重复注解。该框架也已更新,可以与流行的开源库(如 Hibernate、Quartz 和 EhCache)的最新版本配合使用。
新的应用架构
亚马逊、谷歌、Facebook 等许多行业领导者已经放弃了单体 Java 架构,转而采用微服务架构 (MSA) 和 REST——通常将表示层逻辑移至客户端。这种将应用程序 分解 的重要趋势,使用 RESTful 原则,仅在概念上类似于传统的 SOA,但我们同意那些认为它应该被称为不同事物的观点。
James Lewis 在 InfoQ 上发表了一个流行的演讲,其中他阐述了一些我们认可的微服务关键特征:
Spring Framework 核心正在展望未来的微服务,并提供直接和基础性的支持。REST 是 Spring 中的一等公民,这体现在核心的 4.0 框架(Spring MVC)以及 Spring IO 平台组件(如 Spring Boot、Spring HATEOAS、Spring Security、Spring Social 和 Spring Data)中。使用 Spring Framework 4.0,开发者可以使用新的非阻塞 AsyncRestTemplate 以及 Java 语言特性(如 Futures)来创建更具响应性和事件驱动的 REST 服务。
Spring Boot 基于 Spring Framework 4.0 的 @Conditional bean 定义基础设施构建,为基于 REST 的微服务提供“无容器”(内嵌)运行时,能够打包成单个可执行 JAR,此外还提供其他轻量级功能,例如暴露自身的指标。
Spring Framework 4.0 对 HTML5/WebSocket RFC 6455/JSR-356 的领先支持也使得响应式、事件驱动的应用程序成为可能。Spring 的 WebSocket 支持提供了当今网络拓扑所需的基本协议回退机制。更重要的是,它为构建用于 Web 应用程序的 WebSocket 式消息架构提供了基础。该基础集成了 STOMP、Spring MVC 以及轻量级的客户端消息代理(如 msgs.js)或功能齐全的服务器端消息代理(如 RabbitMQ)。此外,Spring Integration 中的核心消息和通道抽象现在也包含在 Spring Framework 4.0 中,以支持服务器端消息。
揭穿迷思
许多不熟悉最新版本的人仍然将 Spring 与 XML 紧密关联,但它早就提供了丰富、基于注解的编程模型。该模型在 Spring Framework 3 中引入,并在 Spring Framework 4 中得到进一步完善。回顾这两个版本,该模型提供了以下能力:
此外,Java 配置在 Spring 项目中得到广泛支持,包括核心框架,它是 XML 和注解驱动配置的另一种替代方案。
与 JCP 合作
Spring 对 Java EE 支持的方法体现在 Spring Framework 4.0 在配置、WebSocket、DI、批处理等方面的创新。对于相关的 Java EE 规范,Spring 在 JCP 中合作定义,然后努力超越相关的 JSR 规范。Pivotal 一直是 JCP 中围绕 WebSocket 等关键 Java EE 7 特性的积极合作者,并直接通过 Spring Batch 激发了批处理 JSR。Java EE 7 还对 JMS、JTA、JPA 和 Bean Validation 规范进行了一些修订,Spring 对此也提供了支持。
Spring 的演进远不止核心 Spring Framework 中所涉及的内容。需要一个模块化的微平台来应对未来的架构、趋势和技术;它能够启用新特性,同时保持轻量级的足迹。Spring Framework 4.0 是 Spring IO 平台的一个关键组成部分。其他 Spring IO 平台组件对 Spring Framework 4.0 进行了补充,它们解决了 Hadoop 和 NoSQL、批处理、企业集成模式以及响应式/事件驱动应用程序开发方面的现代趋势。这些选项允许微服务仅使用工作所需的依赖项进行开发,同时保持一致而简单的 POJO 编程模型。
Spring Framework 4.0 是开源的,在 Apache 2.0 许可下免费提供。我们鼓励您使用 Maven 或 Gradle,相关坐标可以从 spring.io 网站获取。
学习更多或亲自动手
Spring Framework 项目页面始终是一个很好的起点。但我们为配合框架的发布,在新指南上投入了大量精力。秉承“构建更优秀企业”的理念,我们开发了这些入门指南,遵循以下原则:
为庆祝 Spring Framework 4.0 发布,我们推出了许多新的指南。希望您喜欢!
https://springframework.org.cn/guides/gs/messaging-stomp-websocket/
https://springframework.org.cn/guides/gs/consuming-rest-angularjs/
https://springframework.org.cn/guides/gs/consuming-rest-backbone/
https://springframework.org.cn/guides/gs/consuming-rest-jquery/
https://springframework.org.cn/guides/gs/consuming-rest-restjs/
https://springframework.org.cn/guides/gs/consuming-rest-sencha/
https://springframework.org.cn/guides/gs/consuming-rest-ios/
https://springframework.org.cn/guides/gs/rest-service-cors/
https://springframework.org.cn/understanding/cors
这补充了 spring.io 上已有的其他指南,未来还会有更多。来自 SpringOne2GX 2013 的深度 90 分钟演讲以及许多关于各种主题的 60 分钟网络研讨会重播正在我们的 YouTube 频道上陆续发布。
希望您喜欢这个版本,并期待您关于如何使用 Spring 构建更优秀企业的反馈。