AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

虽然遭遇 Oracle 的挑战,Spring 框架依旧蓬勃发展

  • 2014-01-04
  • 本文字数:2686 字

    阅读完需:约 9 分钟

众所周知, Spring 框架在几周前发布了4.0 版,这也是从2009 年以来Spring 发布的首个主要升级版,该版本支持数量广泛的特性,如HTML5/WebSocket、REST、Java 8、微服务框架等。虽然遭遇了来自于Oracle 的各种挑战,不过Spring 这个坚实的开源Java 开发平台依旧在蓬勃发展,不断形成着自己的生态圈。

Spring 4.0 对很多特性都进行了改进,这包括对 Java 8 标准版的支持(如 Lambda)、一个安全的 REST 栈、HTML5/WebSocket 集成、自定义注解及 Java 7 企业版支持(如 JMS 2.0 等)。时至今日,Spring 4.0 的下载量已经有数百万之多,它提供的依赖注入等功能已经领先于 Java 企业版,并且不会受到流程缓慢的 Java 社区进程的阻碍。现在,从技术上来说,Spring 已经完全可以替代掉由 Oracle(之前的 Sun)所制订的官方 Java 企业版标准。

不过从另一方面来看,Oracle 也在极力说服 Spring 开发者迁移到 Java EE 上,并说其实 Spring 也没有什么特别的优势:

Oracle 建议开发者从流行的 Spring 框架迁移到 Java EE 上,不过 Spring 创始人却认为这些技术可以搭配使用,和谐共处,说 Oracle 的这一举动完全是从财务角度着眼的。 在过去的几个月中,Oracle 一直在各种 Web 会议上动员广大开发者从 Spring 迁移到 Java EE 上。有报道采访了来自于 Luminus Technologies 的 Paul Bakker 与 Bert Ertman,他们建议大家迁移到 Java EE 6 上,并认为现今的 Spring 已经与过去不同了,相比于 Java EE 来说已经没有任何优势可言。此外,Bert Ertman 也曾在去年的上海 JavaOne 大会上接受了 InfoQ 的专访,谈到了如何将 Spring 及遗留应用迁移到 Java EE 平台上。

Luminis 资深软件工程师 Bakker 说到“很多开发者几年前根据 Spring 框架创始人 Rod Johnson 编写的图书认为企业级 Java 开发有很多不足之处,不过时至今日,我们有 Java EE 5 与 Java EE 6,我们有经过完全修订的编程模型,他们非常轻量级,并且基于 POJO。现在是时候让开发者们知道 Java EE 表示的并不是 Java Evil Edition 了,我们完全可以使用它来构建非常棒的企业应用”。

Spring 中用来链接关联对象的依赖注入现在已经出现在了 Java EE 5 中。轻量级、面向方面编程也在 Java 中得以实现。不过 Johnson 在回复问题的一封邮件中消除了 Java EE 与 Spring 之间的冲突,他认为“这都是人们自己搞出来的问题,Spring 与 Java EE 6 完全可以和谐共处”。

Johnson 说到“从本质上来说,Java EE 6 想要干掉 Spring 的论调完全是由商业推动的,Spring 减少了人们对于 Oracle WebLogic 等传统应用服务器的需求,用户可以选择更加轻量级的基础设施。虽然 Java EE 6 对之前的版本做了一些改进,不过 Spring 依然提供了非常重要的附加值”。

Spring 的应用场景要比 Java EE 6 多不少,这样 Spring 用户就会有更多的选择权。他们可能并不想要使用 Java EE 应用服务器,即便使用 Java EE 亦是如此,他们可能不想使用 Java EE 6,他们可能处于云环境下,这时 Java EE 并不适用,他们可能使用任意一台应用服务器,他们可能想要部署在各种设备上。这时,Spring 的可移植性就是非常有价值的了。

Spring 的生态系统所解决的问题要比 Java EE 多很多,比如说集成、批处理和非关系型数据等。细粒度的安全也得到了很完善的支持,使用 Spring 的组件模型可以提供很多其他的好处。

在 Java EE 领域中,根据 Oracle 的 Arun Gupta 所述,“Oracle 正在寻求通过 Java EE 7 来扩展 EJB 的事务能力以及事务语义,我们在 Java EE 7 中所做的就是抽象出语义,使之具有更加广泛的应用场景。比如说对于 Managed Bean 或是 CDI Beans 等。借助于 CDI Beans,Managed Bean 可以通过 Java 类来实现”。

根据 Java EE 6 指南所述,如果一个顶层类是根据任何 Java EE 技术规范定义的或是满足某些条件,比如说是非静态的内部类,那么这个类就是个 Managed Bean。Java EE 7 的主要特性就在于支持 GlassFish Server 4 应用服务器。

不过,Pivotal 的市场经理 Pieter Humphrey 却认为大家不必为此担心。他认为这个消息仅仅是一面之言而已,并相信 Spring 的流行还将持续下去。现今的 Spring 技术已经涵盖了移动应用开发、NoSQL、大数据以及云计算等领域。

Spring 4.0 中值得关注的一个特性就是 Spring Boot,这是个类似于 Ruby on Rails 的快速应用开发框架。Spring Boot 能够极大减少样板代码的数量,开发者可以根据最少量的样板或是配置相关的代码开始项目的开发。

上个月,Spring 网站有成千上万的访问者,达到了历史上的访问高峰。此外,通过 Maven 构建管理平台下载的 Spring 数量也在持续增长。

有很多读者也对 Spring 的未来及与 Java EE 标准之间的关系发表了自己的评论,分别从项目所采用的技术标准、Spring 的特性及 Java EE 标准的不断演化等方面谈起。

Jim Smith 说到:

Spring Boot 确实太酷了。我实在是搞不懂这个世界上怎么还有人使用臃肿的 JEE 服务器,只是为了部署一个 Restfule Web 服务。

Anil chalil 说到:

我认为对于 JEE 来说,最好的东西就是 CDI 了,它直接能干掉 EJB 模型,Apache Deltaspike 就是围绕着 CDI 生态圈的一个项目。

Frans Thamura 说到:

Spring 不仅是个技术了,而且是个生态圈,他们的模块使之能够形成一个生态圈,JavaEE 能做到这一点么?我觉得够呛。不过对于移植来说,没错,你是可以做到的,但 Spring 并不是私有技术,这是个问题。这就好比是为什么要将程序从 JavaEE 迁移到 Oracle ADF 上一样。

Nicolas 说到:

没错,我知道 Oracle 的这个事情,当时很多人都在说 JEE 已经不再吸引人了。谁在乎呢?JEE 的目标依旧是围绕着传统的应用服务器制订的,演进得非常缓慢,封闭,而且还抄袭其他的创新,至少要比别人晚 5 年时间。下一步应该是在云中兜售 JEE 了,作为获得厂商封闭策略的另一种途径。没错,我知道从理论上来说你可以不再依赖于某个 JEE 厂商,转而使用其他厂商的服务,如果他们二者真的是兼容的。

各位 InfoQ 读者,Spring 现在基本已经成为了构建 Java 应用事实上的标准,而且也从最初的依赖注入和面向方面编程的框架发展成为现如今的一站式应用平台,Spring 现已形成了自己的一个完善的生态圈,提供了对 Web 开发、移动开发、大数据、云计算、集成、批处理、NoSQL 等等一系列的支持。相比于 Spring,传统的 JavaEE 标准的关注度似乎没有以前那么高了,而且发展速度比较缓慢,这其中有很多的因素,毕竟标准的诞生还是需要经过方方面面的考量,一定的滞后性也是必然的。那么根据你的经验,采用 Spring 与采用标准的 JavaEE 各有什么样的利弊呢?从长远来看,哪一种策略才是最优的呢?欢迎写下你的看法与见解,我们一起讨论。

2014-01-04 21:574070
用户头像

发布了 88 篇内容, 共 266.6 次阅读, 收获喜欢 8 次。

关注

评论

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

颠覆传统开发流程!「原型、设计、开发」仅需一个组件设计器就够了!

优秀

低代码 组件设计器

全球首个Open机器人诞生!当GPT模型有了“肉体”,不仅能听能写还可以干家务!

Finovy Cloud

AI Open AI

Penpad 生态资产 $PDD 即将LaunchPad ,一文读懂Season 2 规则

BlockChain先知

Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt

汀丶人工智能

人工智能 Prompt工程

jackson对象带时间的转换报错,附带fastjson封装工具就填

光进

java‘

众安保险AI代码助手DevPilot获奖,全面开源构筑技术新生态

ZA技术社区

Penpad的Season 2 规则解读,其生态资产 $PDD LaunchPad 在即

股市老人

AWE2024,中国家电智能化的《山海经》

脑极体

AI

一个案例,看懂AI Agent厂商的商业落地路径

王吉伟频道

LLM 大语言模型 AI Agent AI智能体 RPA Agent

热点!浅谈低代码到底是什么?

互联网工科生

专访天谋科技 CTO 乔嘉林:一个顶级开源项目背后,还需要淬炼多个“最后一公里”

Apache IoTDB

使用gitlab+gitlab runner+k8s完成devops

了了

低代码助力企业数智转型

不在线第一只蜗牛

低代码 数智转型

【教程】深入探究 JS代码混淆与加密技术

.NET Core 服务实现监控可观测性最佳实践

观测云

.net core

海信电视U8N Pro,用AI算尽 “每一粒沙”

脑极体

AI

从0到1:企业官网小程序开发笔记(一)

CC同学

千万别让老板知道,这套80%海报,是我用生成式 AI 设计的!

亚马逊云科技 (Amazon Web Services)

Penpad 生态资产 $PDD 即将LaunchPad ,一文读懂Season 2 规则

股市老人

Amazon Bedrock 实践 | 动手玩转 Claude 3

亚马逊云科技 (Amazon Web Services)

头部银行 AI 落地实践|数据应用赋能经营管理闭环

Kyligence

Penpad 生态资产 $PDD 即将LaunchPad ,一文读懂Season 2 规则

加密眼界

Penpad 生态资产 $PDD LaunchPad 在即,Season 2 规则解读

石头财经

虽然遭遇Oracle的挑战,Spring框架依旧蓬勃发展_Oracle_张龙_InfoQ精选文章