昨天折腾了一天,把旧项目升级了
旧项目运行环境
jdk :jdk1.7
TomCat:TomCat8.0 或者 TomCat 8.5
Eclipse 2022-12
spring:spring-2.5.6.jar
Hibernate:hibernate-3.2.6.ga.jar
Struts:struts2-core-2.1.6.jar
升级后运行环境
jdk :jdk1.8
TomCat:TomCat9.0 TomCat的jdk也是1.8
Eclipse 2022-12
spring:Spring4.3.13
Hibernate:hibernate-core-4.1.12.Final.jar
Struts:struts2.5.32
由于jdk1.8还是Java EE项目,还不是很满足,今天决定继续折腾,把项目升级为Jakarta试试。
整个项目已经备份了,不怕坏。
【Jakarta的由来】
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。它分为三个版本:
Java SE(J2SE):标准版。基础中的基础,后面2个版本都依赖于它。当前最新版本是Java 17(LTS版本,将于2021年9月发布)
Java EE(J2EE):企业版。用于企业级大型应用开发,包含了Web、Security、Management等几十种标准技术
Java ME(J2ME):移动版。随着Android/iOS的流行,它已几乎销声匿迹
Oracle将 Java EE (Java SE还自己保留)交给开源组织,Eclipse基金会接手。但Oracle不允许开源组织使用Java名号,所以Jakarta EE名称于2018.02.26应运而生
由于我电脑本身就安装了jdk17,所有直接换jdk17了
更换后源代码会出现很多红色标线
【处理问题1】
import javax.annotation.Resource; 很多类文件的这句标红
Java为我们提供了 javax.annotation.Resource这个注解。
spring框架提供了org.springframework.beans.factory.annotation.Autowired。
一般情况下我们使用 javax.annotation.Resource这个注解,因为这样我们就能实现和spring框架的解藕。
原文链接:https://blog.csdn.net/weixin_39797780/article/details/114972302
这时意识到一个问题
【jdk 和 java ee 和 jakarta ee 到底有什么区别啊】
Java EE是Java企业版,是面向企业级应用开发而设计的Java平台。
JDK则是Java开发工具包,包含了开发和运行Java程序所需的所有组件。
Java EE和JDK之间有许多共同点。Java EE是建立在JDK之上的,也就是说,Java EE中使用的所有Java API都位于JDK中。既然Java EE是基于JDK的,那么JDK的版本肯定会影响Java EE的应用开发。
另外,Java EE中的一些新特性只能在较新的JDK版本中使用。比如,Java EE 7中引入了Lambdas表达式,这是在JDK 8中才被引入的新语言特性。因此,在使用Java EE 7时,必须使用JDK 8或更高版本。
jdk,jre,jvm的区别可见https://blog.csdn.net/Martin_chen2/article/details/112905578
【搞清关系后,我需要下载一个Jakarta ee】
百度找到Jakarta的官网 https://jakarta.ee/zh/
打开后在右上角有这两个按钮
其中starter按钮是 提供helloworld的,也就是【初体验】,可以根据版本号,jdk版本定制hello world;
另一个Download是下载【兼容产品】,点进去看了,全是服务器的,也就是兼容服务器;
愣是找了半天,没找到Jakarta的下载地址,最后在这篇文章找到
参考https://blog.csdn.net/m0_57151612/article/details/123689516
原来是藏在规范里面,我一直以为规范就是代码规范文档,随意没点。
以下是Jakarta的很多个规范,看你需要用到什么功能就下载对应的jar包。
研究了好久,找到这篇文章
https://blog.csdn.net/xiaofanku/article/details/112618281
升级jakarta并不是简单的把java ee替换成jakarta;还要看以下两点条件
1、服务器是否支持jakarta
目前有多个服务器已适配jakarta,tomcat 10支持jakarta;所以服务器没啥问题;
2、框架类是否支持jakarta
头晕,不搞了,恢复用java ee