【SpringBoot教程】IDEA快速搭建正确的SpringBoot版本和Java版本的项目

🙋大家好!我是毛毛张!
🌈个人首页: 神马都会亿点点的毛毛张 🍉今天毛毛张分享的是在做SpringBoot项目中遇到的三个问题,这三个问题看似都是小问题🍓,但是却是做项目的基础常识⚠️

文章目录

  • 1.问题🥝
  • 2.使用IDEA快速搭建正版SpringBoot版本和JDK版本的项目🥑
    • [2.1 查看SpringBoot依赖的JDK版本🍅](#2.1 查看SpringBoot依赖的JDK版本🍅)
    • [2.2 主流的SpringBoot和JDK版本的对应关系](#2.2 主流的SpringBoot和JDK版本的对应关系)
    • [2.3 SpringBoot 2和SpringBoot 3有什么区别](#2.3 SpringBoot 2和SpringBoot 3有什么区别)
  • 3.快速切换JDK版本🥥
    • [3.1 配置不同的JAVA_HOME](#3.1 配置不同的JAVA_HOME)
    • [3.2 安装两个版本的Java显示Java版本总是高的那个版本](#3.2 安装两个版本的Java显示Java版本总是高的那个版本)
  • [4.使用IDEA快速创建SpringBoot 2.x版本的项目🍒](#4.使用IDEA快速创建SpringBoot 2.x版本的项目🍒)
    • [4.1 使用阿里云的国内源创建SpringBoot2.x版本的项目](#4.1 使用阿里云的国内源创建SpringBoot2.x版本的项目)
    • [4.2 拥抱变化,手动修改成SpringBoot 2.x 和JDK8](#4.2 拥抱变化,手动修改成SpringBoot 2.x 和JDK8)
  • 参考文献🥜

1.问题🥝

问题1️⃣:

  • 我们在通过Maven构建Java项目或者使用源代码进行Java编译时,常常遇到JDK版本和SpringBoot版本不匹配的问题,导致编译失败,比如出现如下错误:
java 复制代码
org/springframework/beans/factory/InitializingBean.class
[ERROR]     类文件具有错误的版本 61.0, 应为 55.0
[ERROR]     请删除该文件或确保该文件位于正确的类路径子目录中。
/org/springframework/boot/autoconfigure/AutoConfigureAfter.class
[ERROR]     类文件具有错误的版本 61.0, 应为 55.0
[ERROR]     请删除该文件或确保该文件位于正确的类路径子目录中。
  • 这类错误的原因是:你本地的JDK版本太低,而项目里面使用的SpringBoot版本太高了,解决这个问题要么提升JDK版本,要么降低SpringBoot版本。但是如何查看SpringBoot版本和JDK版本的对应的关系呢?

问题2️⃣:

  • 不同的项目可能需要不同的SpringBoot版本,不同的SpringBoot版本可能需要不同的Java版本,当我们系统里面安装了多个Java版本的时候,如何快速切换呢?

问题3️⃣:

  • SpringBoot 2.X版本在2023年11月24日停止维护了,因此创建SpringBoot项目时不再有2.X版本的选项,只能从3.1.X版本开始选择。而SpringBoot 3.X版本不支持JDK8,最低支持JDK17,因此JDK8也无法主动选择了。那么怎么解决这个问题呢?

2.使用IDEA快速搭建正版SpringBoot版本和JDK版本的项目🥑

2.1 查看SpringBoot依赖的JDK版本🍅

官网上不同版本对应的不同的标识,不同版本标识的意义

  • CURRENT:代表了当前版本,最新发布版本,里程碑版本。

  • GA:通用正式发布版本,同release。

  • SNAPSHOT:快照版本,可用但非稳定版本。

  • PRE:预览版本。

  • **M版本:**M1,M2,M3中的M是milestone的简写,这个单词是里程碑的意思。

  • Alpha:也被称为内部测试版或预览版,这些版本通常不会对外部用户公开,因为它们可能包含许多尚未修复的漏洞和不完整的功能。通常只有开发团队和其他内部相关人士才能访问和使用 Alpha 版本。

  • Beta:是一种公开测试版,位于 Alpha 版本之后。这个阶段的版本通常会加入新功能,并且相较于 Alpha 版本来说会更加稳定。Beta 版本主要面向特定的用户群体进行测试,如合作伙伴、潜在客户或早期采用者。

2.2 主流的SpringBoot和JDK版本的对应关系

Spring Boot 版本 Jdk版本 Spring Framework 版本
Spring Boot 1.3.x - Spring Boot 1.5.x Java JDK 7 及以上版本
Spring Boot 2.0.x - Spring Boot 2.3.x Java JDK 8 及以上版本
Spring Boot 2.4.x Java JDK 11 及以上版本
Spring Boot 2.5.x Java JDK 16 及以上版本
Spring Boot 2.7.18 Java JDK 8版本---21版本 Spring Framework 5.3.31+
Spring Boot 3.0.13 Java JDK 17版本-21版本 Spring Framework 6.0.14+
Spring Boot 3.1.8 Java JDK 17版本-21版本 Spring Framework 6.0.16+
Spring Boot 3.2.2 Java JDK 17版本-21版本 Spring Framework 6.0.13+
Spring Boot 3.3.0-M1 Java JDK 17版本-21版本 Spring Framework 6.0.13+

2.3 SpringBoot 2和SpringBoot 3有什么区别

  • 最低环境的区别
    • Java版本:SpringBoot2的最低版本要求为Java8,支持Java9;而SpringBoot3决定使用Java17作为最低版本,并支持Java19。
    • Spring Framework 版本: SpringBoot2基于Spring Framework5开发;而SpringBoot3构建基于Spring Framework6之上。
  • GraalVM支持的区别 :相比SpringBoot2,SpringBoot3的Spring Native也是升级的一个重大特性,支持使用GraalVM将Spring的应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存使用。
  • 片Banner支持的区别:在SpringBoot2中,自定义Banner支持图片类型;而现在Spring Boot3自定义Banner只支持文本类型(banner.txt),不再支持图片类型。
  • 依赖项的区别:相比SpringBoot2,Spring Boot3.0.0-M1删除了对一些附加依赖项的支持,包括Apache ActiveMQ、Atomikos、EhCache2和HazelCast3。Jersey是另一个值得注意的弃用,在它提供对Spring Framework6的支持之前已被删除。
  • 除了上述内容外,相比SpringBoot2,SpringBoot3还增加了很多其它的新特性,如:Java EE已经变更为Jakarta EE、Log4j2增强、三方包升级等。

3.快速切换JDK版本🥥

  • 看了上面我们发现如果使用较低的SpringBoot版本的时候,我们需要将系统JDK版本切换到JDK8,当我们系统中存在多个版本的时候如何快速切换呢?
  • 毛毛张在这里就不讲述JDK的安装教程了,如果还熟悉JDK的安装教程了可以参看毛毛张的这个教程:Java学习笔记 | JavaSE基础语法 | 0 | Java入门概述
  • 下面毛毛张将介绍Windows系统下安装和随意切换多个版本的JDK

3.1 配置不同的JAVA_HOME

  • 大部分情况下,可以通过以下两个环境变量来确定当前应用程序使用的是哪个 Java 版本:
    • JAVA_HOME:多数脚本使用该环境变量来确定 Java 版本的位置。
    • Path:当从控制台运行 Java 二进制文件(如 java 和 javac)时,使用的是该环境变量
  • 在只有一个 JDK 的情况下,Windows 只需要在环境变量中配置 JAVA_HOME,并且在 PATH 中配置 bin 的位置,这样就可以在任意目录下使用 java 命令了。只需配置 bin 目录即可,不必配置 jre 目录。
  • 当我们安装了多个JDK的时候,这里假设电脑上下载了 JDK 8 和 JDK 17 两个版本,他们的安装路径分别为 D:\software\IDE\Java\JDK\JDK1_8D:\software\IDE\Java\JDK\JDK17,这是毛毛张的安装配置,如下图:
  • 操作步骤:
    • 增加一个名字叫 JAVA_HOME8 的环境变量,使其指向目录 D:\software\IDE\Java\JDK\JDK1_8
    • 增加一个名字叫 JAVA_HOME17 的环境变量,使其指向目录 D:\software\IDE\Java\JDK\JDK17
    • 修改原来的 JAVA_HOME(没有的话就新增一个),使其值指向你想使用的 JDK 版本,比如我想使用 JDK 17,那就设置其值为 %JAVA_HOME17%,这样就不需要动之前Path环境变量中配置好的%JAVA_HOME%\bin
  • 最后保存环境变量配置,然后打开一个新的命令行窗口输入 java --version 即可看到当前使用的 java 版本了
  • 每次当我们切换JDK版本的时候,只需要修改JAVA_HOME的值就行,如果需要使用JDK8就将JAVa_HOME替换成%JAVA_HOME8%

3.2 安装两个版本的Java显示Java版本总是高的那个版本

  • 这个问题困惑了毛毛张许久,原因在于安装 JDK 时使用了 .exe 安装包版本。在安装过程中,Windows 系统会自动将最后安装的 JDK 设置为系统默认的版本,因此每次切换 JDK 时,系统仍然会显示安装的最高的那个版本。
  • 当尝试配置低版本 JDK 时,使用 java --version 命令时,可能会看到依然是高版本的 JDK,而低版本 JDK 没有生效。这是因为 java --version 命令会根据环境变量 PATH 来查找 Java 可执行文件,而默认路径中的 java 可能指向了安装的最高版本。
  • 但是不必担心,只要修改了正确的环境变量并在 IDEA 中选择了相应的 JDK 版本,就不会出现版本不一致的错误了。这个问题可以通过以下步骤解决:
    • 修改环境变量 JAVA_HOMEPATH,确保指向你想要使用的低版本 JDK 路径。
    • 在 IDE(如 IntelliJ IDEA)中,手动选择对应的 JDK 版本。IDEA 会读取你配置的环境变量,并使用你选择的 JDK 版本。
  • 由于不影响使用,所以毛毛张就没用去解决了,如果你们安装的也是exe版本的,想解决这个问题,解决方案可以参看下面在两篇文章:

4.使用IDEA快速创建SpringBoot 2.x版本的项目🍒

4.1 使用阿里云的国内源创建SpringBoot2.x版本的项目

  • 在使用IDAE的快速创建工具SpringBoot的时候,把创建项目页面上面的Server URL修改成https://start.aliyun.com,原始的是https://start.spring.io
  • 然后就可以愉快的创建项目了,需要注意的是,通过阿里云创建的项目,初始结构与通过Spring官方创建的项目有所不同,但完全不影响使用

4.2 拥抱变化,手动修改成SpringBoot 2.x 和JDK8

  • 首先修改pom.xml文件
  • 修改Project Struture,此处也修改成JDK8

  • Modules这里也修改成JDK8
  • 这里也需要修改:
  • 都修改完毕后记得点击Apply,再点击OK
  • 修改Settings

参考文献🥜


都看到这了,不妨一键三连再走吧!

🌈欢迎和毛毛张一起探讨和交流!
联系方式点击下方个人名片


相关推荐
GzlAndy37 分钟前
JVM对象创建过程
java
乔木剑衣42 分钟前
JVM学习:CMS和G1收集器浅析
java·jvm·学习·垃圾收集
找了一圈尾巴2 小时前
Wend看源码-Java-Collections 工具集学习
java·开发语言·学习
Ai 编码助手4 小时前
Go 语言 API 限流实战:保障系统稳定性的护盾
开发语言·后端·golang
广而不精zhu小白4 小时前
CentOS Stream 9 安装 JDK
java·linux·centos
程序员云帆哥4 小时前
【玩转23种Java设计模式】行为型模式篇:命令模式
java·设计模式·命令模式
赵谨言5 小时前
基于 Java 大数据的旅游推荐系统的设计与实现
java·经验分享·毕业设计
NHuan^_^6 小时前
RabbitMQ基础篇之Java客户端 Topic交换机
java·rabbitmq·java-rabbitmq
中國移动丶移不动6 小时前
Java List 源码解析——从基础到深度剖析
java·后端·list
javaTodo6 小时前
消息队列kafka详解:Kafka架构介绍
后端