Java|从Java EE到Jakarta EE,企业版Java的发展历程( 四 )


总而言之:Jakarta EE你可认为它(的内容)就是Java EE , 只是名字换了 , 老东家换了 。 之前由JCP来推动它的发展 , 以后将有开源社区推动 。 至于前景如何 , 咱们拭目以待 。
Jakarta EE发展史Jakarta EE还很年轻 , 2017年8月从Oracle手中接棒过来算起 , 也不过4岁 , 谈不上什么发展史 , 是好是坏周期太短也不能早下定论 。 截止到目前 , 共发布了三个版本 , 内容几乎没有变化 , 只在命名空间、版本号方面稍有改变 , 记录如下:

版本
发布日期
焦点说明
Jakarta EE 8
2019.09
规范与Java EE 8完全相同 。 Maven的GAV变了:
javax.servlet:javax.servlet-api:4.0.1 ->jakarta.servlet:jakarta.servlet-api:4.0.2 , 但命名空间没变依旧还是javax.* , 算是个小过度吧
Jakarta EE 9
2020.11
没有加入新功能 , Eclipse基金会的首个正式版本 。 命名空间从javax.*迁移到jakarta.* , 前者从此成为历史 。 所有模块大版本号+1 , 如Servlet 4.0.2 -> Servlet 5以表示其断层式升级
Jakarta EE 9.1
2021.06
相较于9没有加入新API 。 主要提供对Java SE 11的运行支持
一站式聚合API如你所知 , Java EE/Jakarta EE是几十种技术(规范)的几何 , 几乎每种技术都有其API(对应一个Jar) , 为了方便总揽全局 , Java EE自6版起提供了一站式聚合API , 导入一个就够了:
<dependency>
  <groupId>javax</groupId>
   <artifactId>javaee-api</artifactId>
   <version>6.0.0</version>
   <scope>provided</scope></dependency><!-- Jakarta命名空间版本 --><dependency>
   <groupId>jakarta.platform</groupId>
   <artifactId>jakarta.jakartaee-api</artifactId>
   <version>9.1.0</version>
   <scope>provided</scope></dependency>

效果如下:

特别注意:实际工作中不建议使用这种粗暴的、大而全的导入方案 , 而是应该按需导入精确把握 , 还classpath一片“干净” , 并且也能做到心中有数 , 方可运筹帷幄 。
有Java EE SDK吗?既然Java SE有JDK , 那么Java EE是否也有SDK呢?答案:有的 。 Oracle官网/Jakarta EE官网均提供了SDK供以下载:
https://www.oracle.com/java/technologies/javaee-8-sdk-downloads.html
只不过此SDK可能让你失望了 , 它不是传统的软件开发工具包 , 而更像是一个技术合集 , 并且和自家的Glassfish强绑定 , 包含有以下内容:
  • doc官方文档
  • 几十种技术的使用samples(基于Maven管理、构建)
  • glassfish容器 , 强耦合
总的来讲 , 如若是抱着学一学的目的那么可以down下来玩玩 , 毕竟里面的samples示例、文档比较全 。 如若你是抱着使用的目的 , 那就不建议了 , 毕竟glassfish我们(国内)很少使用 。
?总结30年弹指一挥间 , Java EE在逐渐淡出Java开发者的视野 , 但中短期来看它依旧是我们绕不过的内容 , 经常能听到、看到、聊到 。 当在研究Spring等开源框架的时候 , 也经常会看到Java EE的影子 。
本文介绍了Java EE的发展史 , 目的是对它有个笼统的认识 。 从Java EE到Jakarta EE , 它能否重新焕发生命力我不知道 , 但留下来的不少东西依旧是目前的主流(如Servlet规范、JPA等等) , 具有非常高的学习价值 , 切莫轻视