【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

Spring 4 增强了对 Java 8、Java EE 7、REST 和 HTML5 的支持

  • 2014-01-01
  • 本文字数:2798 字

    阅读完需:约 9 分钟

几天之前 Pivotal 发布了 Spring 4.0 ,这是自 2009 年之后发布的首个主要版本。新版本支持 Java 8,支持使用 Lambda 的回调表达式、支持 JSR 310 日期和时间 API 以及参数名发现。

对 Java EE 7 的支持包括:JMS 2.0、JTA 1.2、JPA 2.1、Bean 验证 1.1 和 JSR-236 并发工具。

Spring 4 还改善了 REST 支持,提供了一个新的 AsyncRestTemplate 和 HTML5/WebSocket 与旧版本浏览器的集成。

如果你想要查看 Spring 4 的功能及其新特性的完整列表,那么可以查看 Pivotal 应用程序结构的首席架构师 Adrian Colyer 的博客 Spring 框架发布 4.0GA 版

Spring 4 宣称该版本能够让 Java 和 Groovy 开发者很容易地交付和整合新应用程序架构、大数据、devops 和云友好的部署。另外,它还包含一个新的名为 Spring Boot 的项目。Spring Boot 是一个新 Spring 技术,该技术的目标是让 Java 开发也能够实现 Ruby on Rails 那样的生产效率。

在 Spring 体系下有很多项目。最近的 Spring IO 项目就是为了将核心的 Spring API 带入一个有凝聚力、版本化的基础平台上而创建的。通俗地说,这是一个新的包含参考文档、教程、团队博客和论坛的网站。对于 Spring IO 和 Spring Boot 能够给开发者带来哪些帮助, Spring 4 新闻稿中包含有这样一段非常有趣的话:

Spring IO 的主要目标是通过 Spring Boot 和 Groovy 这样的组件让 Java 成为开发者生产效率方面的领导者。“在 Pivotal 实验室里,开发者对幸福感和样板代码的偏执度已经形成了非常高的要求,因为他们过去完成了相当多的 Ruby on Rails 开发,”Pivotal 实验室的首席运营官 Edward Hieatt 说。“在我们的实验室里,那些使用 Spring 框架 4.0 和 Spring Boot 的 Ruby on Rails 开发者对它印象深刻,因为它的生产效率很高同时能够在一个单一的编程模型上处理各种各样的场景”。

我想知道 Spring 4 是否是 Spring 3 的一个插入式替代品,为了找到答案我最近做了一个实验。在使用Spring 4 和Spring Boot 对Web 应用进行大转变一文中,我将一个使用Spring 3.2.5、Spring 安全3.1.4 和Jersey 1.18 开发的应用程序升级到了Spring 4、Jersey 2 和Java 8。此外,我还集成了Spring Boot 并且将其转换成了JavaConfig 以替代XML。整个开发体验是非常令人愉快的。我再次发现Spring 拥有非常好的向后兼容性。而我发现的唯一问题是在缺少容器的环境中使用Jersey 时遇到的。

在公告发布之后,我有幸采访了 Adrian Colyer

在你说Spring 4.0深度支持Java 8的时候,你的意思是什么?为什么使用Spring能够让Java 8更容易?

Java 8 完美地契合了 Spring 的编程模型。我们相信,将 Java 8 提供的那些优雅的语言特性及其立即使用的类库提升与标准的 Spring API 结合起来将会极具吸引力。事实上,Spring 框架 4.0 是业界第一个完全支持 Java 8 的应用程序框架。为了提供能够在现在的 Java 8 上开发 Spring 应用程序所需要的所有内容,我们甚至在 3 月份 Java 8 生产启动之前就已经开始做相关的准备工作。

你提到Spring BootJava提供了史无前例的生产效率。那你觉得GrailsSpring RooPlayJRebel怎么样?它们可以让你开发一整天而不用重启应用。Spring Boot在哪些方面要优于这些技术?

Boot 提供了比“企业”Java 更多的生产力,同时还覆盖了一套更广泛的应用程序,从 Web 到纯粹的数据应用程序(Spring XD)。而另一方面,Grails 则非常关注 Web 应用程序在完整堆栈环境中的快速开发。Spring 能处理的内容远不止 Web 应用程序,Boot 代表了可用于 Spring 及其生态系统项目的一种约定优于配置的方法。当然,我们还没有为以前所有的 Spring 项目提供 Boot 支持,但是采用的步伐是非常令人吃惊的,同时距离 100% 的饱和度也已经不远了。

为什么Pivotal会有如此之多基于JVM的框架(GrailsSpring Roo以及现在的Spring Boot)用于新应用程序的创建?

事实上,Pivotal 所有基于 JVM 的框架(Boot、Grails 和 Roo)都是基于 Spring MVC 的,但是它们的受众不同。Boot 为 Spring 生态系统提供了一种固执的、约定优于配置风格的框架,它的适用范围比 Web 应用程序更广泛。而另一方面,Grails 则更加关注领域特定的运行时,让用户能够使用 Groovy 语言和 DSL 快速开发 Web 应用程序。最后,Roo 则是完全关注于代码生成。所有的这些框架都会将开发者带到 Spring 平台上,这是我们的主要目标。

你认为更多的选择会让开发者和决策者感到焦虑么?

这是一个棘手的或者说是比较主观的问题。对于决策者而言,更多的选择听起来好像代表着更好的风险管理,更容易招聘到开发人员。对于开发者而言,这很有可能会引发更多的焦虑,相对而言,他们只有确实找到一种比他们的背景和已有技能水平更好的风格,他们才会感到兴奋。

Spring-Loaded看起来好像是一个免费版本的JRebel**。根据其网站提供的信息,它是Grails 2中使用的重新装载系统。该项目与Spring Boot和它惊人的生产效率有关么?**

不是的。在 Spring 框架 4.0 中 Boot 是通过 @Conditional 注解启用的。你对加载的感知是准确的,但是 JRebel 更加全面,它能够和多个 IDE 一起使用。

对于Java EE(或者其他实现)缺失的内容Spring 4WebSocket支持提供了哪些内容?

这是关于后备选项(SockJS)和高层消息协议(STOMP)的。我们主要考虑将 WebSocket 作为一个传输层,真正有趣的部分出现在它上面。Spring 的新消息模块表明了我们能够从哪里看到应用程序开发人员的共同点。它做的事情比 Java EE 7 中的 JSR-356 要多的多,要注意的是,我们也支持 JSR-356,它是基础,但是我们更关注自己的 WebSocket 编程模型中的更高层次的交互模式。因为低于 IE 10 的浏览器并不支持 WebSocket,所以实际上如果现在没有后备选项那么 WebSocket 是无法单独使用的。

SpringJSP标签除了支持WebSocketsHTML5属性之外,Spring 4还为HTML5**** 提供了哪些其他的特性?

我们的焦点是让开发者能够使用面向 HTML5 的 Web 应用程序架构。从我们的角度,这不仅仅是通信风格和状态管理安排的问题,还包括特定的 HTML5 特性。也就是说,相对于客户端上流行的 JavaScript 框架而言,Spring 也是一个好市民。我们不仅会做此时此刻的分享,我们还会致力于让 Spring 4.x 产品线持续地向下一代 Web 架构进化。

根据我的经验(来自于咨询和大会演讲),大多数开发者依然在通过XML使用Spring。你认为会有更多的开发者迁移到JavaConfig和 ****Spring 4 上么?

这是他们的选择,他们可以决定什么时候对哪些内容进行迁移对自己是有意义的。他们可以使用注解、JavaConfig 或者 XML——这比 Java EE 提供了更多的选项。顺便说一下,我们喜欢 JavaConfig,希望更多的组织能够采用它。

如果你正在使用 Spring 和 Maven,那么可以通过一个新的“材料清单”POM 进行升级。如果想要下载或者查看Gradle 坐标,那么可以查看 Spring 框架项目的网站

查看英文原文 Spring 4 Enhances Support for Java 8, Java EE 7, REST and HTML5

2014-01-01 01:4915899
用户头像

发布了 321 篇内容, 共 115.6 次阅读, 收获喜欢 18 次。

关注

评论

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

华为云CDN加速服务,让企业用户上网“走高速”

爱科技的水月

C#-使用Consul

kdyonly

C#

亚信科技通信、交通行业数据库项目入选“星河”标杆、优秀案例

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

超融合一体流式引擎,打造分布式数据库新纪元

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

华为云大数据BI解决方案助企业突破数据壁垒,加快企业数字化建设

与时俱进的时代

支持随时畅玩3A游戏,华为云大数据助力游戏厂商快速稳健发展!

与时俱进的时代

助力游戏厂商稳健发展,华为云大数据解决方案高效赋能!

与时俱进的时代

干货|无源元件之——电感基础知识(详解)

元器件秋姐

科普 电感器 电感 电感元件 电子知识

APISIX Ingress 对 Gateway API 的支持和应用

API7.ai 技术团队

云原生 APISIX API Gateway Ingress Controller

什么样的魔法棒,能让AI魔法师一夜成名?

白洞计划

存储数据不要愁,华为云来帮你!

与时俱进的时代

“上云”成本低,稳定可靠!华为云OBS助力企业解决数据存储难题

与时俱进的时代

何惧内卷?华为云对象存储服务OBS工具随便拿出一个都很能打

与时俱进的时代

小米封杨:工业设备预测性维护及时序数据库选型

YMatrix 超融合数据库

工业4.0 超融合数据库 预测性维护 设备预测性维护 YMatrix

华为云对象存储OBS超高性能数据存储能力,推进企业快速上云

爱尚科技

企业数据存储,还得看华为云对象存储服务OBS

爱尚科技

助力网络碳中和 | 华为发布站点能源十大趋势

Geek_2d6073

华为云CDN加速,为企业开启高效且安全的加速环境

科技说

华为云CDN加速服务的精细化管理,让加速变得简单起来

科技说

华为云微服务引擎0停机迁移Nacos?它是这样做的

科技之光

MatrixDB v4.6.0 发布,查询性能和图形化操作界面全面升级!

YMatrix 超融合数据库

Prometheus 存储引擎 超融合数据库 YMatrix MatrixGate

华为云OBS对象存储服务:这个管家很贴心

爱尚科技

存储空间不够大?试试华为云OBS对象存储服务

与时俱进的时代

2022卡塔尔世界杯专题分析

易观分析

世界杯 体育

华为云OBS:让大数据的容器再无容量限制

爱尚科技

不止于快,华为云CDN加速服务对OBS桶文件加速的超实用技巧

爱科技的水月

【电商行业必备神器】轻松备战“双十一”,华为云OBS值得拥有

与时俱进的时代

华为云CDN加速,如何助力企业更好发展?

爱科技的水月

华为云CDN加速服务助你开启网络加速时代

爱科技的水月

云渲染一张图大概多久?云渲染快吗?

Renderbus瑞云渲染农场

云渲染

什么样的魔法棒,能让AI魔法师一夜成名?

脑极体

Spring 4 增强了对Java 8、Java EE 7、REST 和HTML5的支持_语言 & 开发_Matt Raible_InfoQ精选文章