有时候存在一种现象是人在家中坐,名从天上来,印度尼西亚凭借其盛产咖啡的小岛Java火了十数年,现在Java EE 彻底改名成Jakarta EE了,Jakarta即印度尼西亚的首都雅加达,这让做Java开发的有机会不由得想去印度尼西亚旅游一波。
Oracle将Java EE移交给Eclipse基金会之后,不允许其再度使用Java这个词,于是Eclipse 基金会便把Jakarta推了上了,值得一提的是,Jakarta 这个名字并不新鲜,Apache早就有此开源项目了。
其实话说回来,Jakarta EE 就是 Java EE基础上的升级版和规范版,当然其中也涉及到版权之争,在技术不断迭代的时代,这是一个顺其自然的产物。
Jakarta 提供构建现代化、简化和轻量级云原生 Java 应用程序(如微服务)的功能,适合与容器、微服务和编排等现代软件范例连接。
而Spring boot 3.0 时代除了果断的要求使用JDK 17 之外,也是在底层依赖上从Java EE 迁移到 Jakarta EE,加强对云原生的支持。
表现上将命名空间javax 改成 jakarta, 如添加javax.servlet 依赖,变成了jakarta.servlet,但使用上类似。比如maven在引入javax.servlet 依赖的时候,要加入provided的限定,表明该包只在编译和测试的时候用,否则在开发打包的时候会出现“It Is Indirectly Referenced From Required .Class Files”的报错,切换到jakarta.servlet 也是一样。
参考文章:
https://zhuanlan.zhihu.com/p/567380680
https://baijiahao.baidu.com/s?id=1724426918737193109&wfr=spider&for=pc
https://www.jb51.net/article/190965.htm