javax包和jakarta包功能上是差不多的,jakarta是由javax演变而来的,但是如果乱用,会出现版本不兼容问题,比如在springboot项目中,如果内嵌的tomcat容器的版本为9.几,那它是不支持jakarta的,此时只能使用javax

tomcat 9.几版本情况

在springboot项目中tomcat版本为9.0.45的情况

tomcat 10.几版本情况

小结

从上面可以看出,tomcat9版本只兼容javax,而tomcat10兼容jakarta和javax。所以在springboot项目jdk版本切换,或者springboot版本切换时,内嵌的tomcat容器版本可能会发生变化,比如我之前项目版本为jdk17,当我改为jdk8后,内嵌的tomcat版本降低了,不支持jakarta,所以只能把jakarta全部换成javax

题外话

如何查看idea springboot项目的tomcat版本

1.idea终端输入

(运行时间可能会有点久,大概几分钟)

mvn dependency:tree > tree.txt

此时会在项目目录创建tree.txt文件

2.打开tree.txt,ctrl+F搜索tomcat,即可找到tomcat版本

如何更换tomcat版本

关于这方面,我也没有深入去尝试,不过在我们创建springboot项目时,当我选择Java版本时为17时,此时内嵌的tomcat容器版本为10.几

当我选择Java版本为8时,内嵌的tomcat版本为9.几

有些同志的Java版本可能没有8这个选项,这是因为URL不同,我用的是阿里云的

idea默认是用官方的,现在springboot版本已经是3.几了,官方已经不再提供低版本Java版本比如8.大家可自行去修改URL

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐