Spring 入门 | Spring 与 Jakarta EE 的关系

举报
TiAmoZhang 发表于 2025/07/29 11:22:52 2025/07/29
【摘要】 Spring Framework是Java平台的明星框架,Spring Framework必须依赖Java EE;同时也要看到,Spring Framework对Java EE的核心模型提出了挑战。

Spring Framework是Java平台的明星框架,Spring Framework必须依赖Java EE;同时也要看到,Spring Framework对Java EE的核心模型提出了挑战。

下面要了解一下:


* 什么是Java EE(后期改名为Jakarta EE)?

* Spring与Jakarta EE到底是什么关系?


01、Java EE与Jakarta EE

Java EE是Java Enterprise Edition的缩写,它是甲骨文提出的一套完整的开发规范。Java平台最早由Sun公司开发,后来甲骨文兼并了Sun。

Java EE以前一直由甲骨文维护,直到2018年3月,Java EE被更名为Jakarta EE,以后由开源组织Eclipse基金会来维护。

2022年11月,VMware发布了Spring Framework 6.0,它的依赖环境是JDK17+、Jakarta EE 9+(Tomcat 10/Jetty 11)。JDK17是甲骨文2021年9月14日发布的一个LTS(长期支持)版。


02、Jakarta EE是什么

Jakarta EE是Eclipse基金在Java EE基础上发布的一套Java开发规范(Specification)。

规范是什么?比方说,冯·诺依曼定义了计算机架构,由输入设备、输出设备、运算器、控制器、内存、外存组成,这就可以看成一套high-level(高级)的规范。规范就是一组约定,其他人按照约定实现。它相当于工业标准,协议也可以看成某种具体的规范。

Jakarta EE的大量规范性文档是由一系列的JSR组成的。JSR是Java Specification Requests的缩写,意思是Java规范提案。表1-1是Jakarta EE 9的规范组成。

123.png

表1-1  Jakarta EE 9的规范组成


03、Jakarta EE 9架构

图1-4为Jakarta EE 9架构图。Jakarta EE与Java EE架构的核心:这是一套容器与组件协同的分布式工作模式。

1234.png


图1-4  Jakarta EE 9架构图

注:Applet Container(Applet容器)、Web Container(Web容器)、EJB Container(EJB容器)、Application Client Container(应用客户端容器)、Database(数据库)、Server Pages(服务器页面)。


Jakarta EE容器:图1-4中的Applet Container(容器)、Web Container、Application Client Container(应用客户端容器)、Enterprise Beans Container(企业Beans容器)等统称为容器。

Jakarta EE组件:图1-4中的Applet、Server Pages、Servlet、Enterprise Beans等统称为组件。

理解Jakarta EE的容器与组件工作模式对于学习Spring Framework非常重要,因为Spring也是容器与组件的工作模式。

组件简称Bean,容器如何管理Bean对象、Bean的生命周期、Bean的状态管理等,都是需要掌握的重要知识点。把Jakarta EE与Spring的Bean进行对比学习,是非常重要的学习方法。


04、Spring与Jakarta EE

Spring Framework与Jakarta EE对比,具有如下特点:


* Spring是轻量级框架,Jakarta EE中的EJB(Enterprise Java Bean)是重量级框架。

* Spring的出发点是用声明性事务代替EJB,因此Spring和Jakarta EE是竞争关系。

* Spring是第三方框架,Jakarta EE是规范,Spring的所有开发必须满足Jakarta EE平台的要求。

* Spring用声明性事务替代EJB后,两者又成为互补关系。

Rod Johson说:While some consider Java EE and Spring to be in competition, Spring is, in fact, complementary to Java EE(Spring与Java EE既是竞争关系,又是互补关系)。

例如:Spring的AOP,提出了中小企业的开发方案,替代了EJB;Spring支持EJB的调用;Spring有很多自定义的Annotation(注解),但是也支持JSR中的Annotation。



【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。