Spring boot环境的常见问题

一、启动类无法运行

  1. 原因:IDEA 没有把当前项目识别成一个Java程序/Maven程序
  2. 解决思路:告诉IDEA这是一个Maven项目
  3. 具体方法:两种方法
    在这里插入图片描述

二、包相关问题

2.1 默认配置的包无法下载

因为我们这个项目是按照 “Spring Boot的模板” 创建的,所以系统会给我们自带一些Spring Boot的默认配置。这些配置,有的没用,有的有用。下面这个就是没用的,对于这个原则是【尽量下载,如果实在下载不下来,就删掉】

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <image>
                    <builder>paketobuildpacks/builder-jammy-base:latest</builder>
                </image>
            </configuration>
        </plugin>
    </plugins>
</build>

2.2 第三方库的包无法下载

  1. 首先确认要下载的包是否存在:去仓库进行确认
    • 关于要去确认的仓库
      • 此处以中央仓库的为准。
      • 我们也可以去中央仓库的查询界面或者国内源找,三者大部分情况下都是一致的。
      • 但我们依旧【中央仓库】为准,这里没有就是真的没有这个包(联系包的下载原理)
    • 如何去确认:根据pom.xml中该包的路径和包的名字去中央仓库找
      在这里插入图片描述
  2. 如果包存在:多次刷新,重新下载,有时候下载不下来是网速问题
  3. 始终都下载不下来
    • 查看是否配置了国内源,国内源的网速会较快
    • 查看目录是否存在中文,如果存在修改路径
    • 删除本地仓库的jar包,重新下载
      • 原因:上次下载时,可能因为网络等等原因,Jar包只下载了一半,即要下载的东西是不全的,但是Maven以为它找到了这个包,就不会再去下载了,所以我们需要手动删除并再次下载。
      • 删除的包:本地仓库的所以Jar包都可以删掉,但如果全部删掉,后面就全部要重新下载,十分麻烦。所以我们只需要根据路径,删除指定的包就可以了
    • 隔一段时间再下载

2.3 包找不到

  1. 问题
    在这里插入图片描述
  2. 解决方法:查看pom文件中,该Jar包是否下载成功并且加载到项目中
    • 下载问题:如果包没有下载成功,就变成了【包无法下载】的问题了
    • 加载到项目中:每一次修改pom文件,都需要刷新将修改后的包加载到当前项目中
    • 如何查看项目中已导入的包
      在这里插入图片描述

三、出现了一个无效的源发行版17

  1. 解析:表示当前使用的是 jdk17,解决方法是修改jdk版本
  2. 为什么创建项目时正确选择了jdk8版本,但最终变成了17:Spring Boot 的版本如果超过了3.X,它会自动把jdk的版本改为17,即默认使用17
  3. 如何查看当前jdk版本:可以在pom.xml文件里查看
<properties>
    <java.version>17</java.version>
</properties>
  1. 如何修改jdk版本:需要查看更改三个地方:pom.xml、Project Structure、Setting 配置

(1)pom.xml 文件

<properties>	//更改这里的版本
    <java.version>17</java.version>
</properties>

(2)Project Structure

在这里插入图片描述

在这里插入图片描述
(3)Setting 配置里/font>
在这里插入图片描述

四、类文件具有错误的版本 61.0,应为52.0

  1. 问题:JDK版本与其他版本发生了冲突,52指的是JDK8,61则指JDK17
    • Spring Boot框架对JDK的支持:Spring6 以及 SpringBoot3.0开始最低支持JDK17
    • MyBatis对JDK的支持:MyBatis里3,.X的版本用JDK17,2.X用的则是JDK8
  2. 解决方法:修改pom.xml文件中,JDK或其他框架的版本
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.13</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
  1. 对于jdk8来说,1.8和8都可以写,IDEA都是认识的

五、控制台乱码

  1. 解析:这是字符集编码问题,配置【VM options】将字符集更改为utf8即可
  2. 如何把该项目的字符集更改为utf8
    在这里插入图片描述
    在这里插入图片描述

六、无法使用jdk8创建Spring Boot项目了

6.1 前景介绍

  1. 问题描述:使用IDEA创建Spring Boot项目时,无法选用jdk8来创建项目 + 不能直接创建2.X的版本
  2. Spring Boot无法直接创建2.X版本的原因:官方不再支持该版本
    在这里插入图片描述
  3. 无法选用jdk8来创建项目的原因:官方也不支持了
    • jdk8,11,17都是稳定版本
      • jdk开发人员维护新版本:哪怕jdk开发人员每隔一段时间都会发布新版本,但是新版本只会维护一段时间,比如jdk13只维护jdk14发布,如果13有问题了,直接升级到14,不会去管13
      • jdk开发人员还会维护稳定版本:但jdk开发人员除了会维护这些新版本,还会维护这些稳定版本,这也是为什么我们在创建项目时,能看到这些稳定版本的原因
  4. 问题的解决方法:使用能直接使用的jdk17或改成jdk8
    • jdk8已经不被官方维护支持了,为什么我们还能使用:官方只是不维护这个包了,这个包还是存在的,只是我们没法直接去使用而已。包只要发布了,就是永远存在的
    • 是否有必要升级成17:分情况。jdk8和jdk17还是有些不同的,升级了原本能跑的代码可能跑不了了
      • 小公司可能会更改jdk版本
        • 原因一:官方不维护jdk8后,小公司没有办法独立解决旧版本出现的bug,它们往往直接用的是免费且开源的框架
        • 原因二:项目少,更改成本低
      • 大公司不大会更改jdk版本
        • 原因一:有能力独立解决旧版本出现的bug,它们一般不会使用免费开源的框架,而是在该框架的基础上二次开发出他们企业内部使用的框架
        • 原因二:项目多,更改成本高
  5. jdk多个版本是可以共存的
    • 我们可以在一台机器上安装多个jdk
    • 配置环境变量就是告诉电脑某些东西可以在哪里被找到,以方便我们去用
    • PS.IDEA可以帮我们去找到jdk,我们在IDEA上运行java程序很方便。但如果我们不在IDEA上运行,此时环境变量是一定要配置的。

6.2 创建jdk8的项目

方法一:通过阿里云的网址去下载

  1. 网址
  2. 使用方法
    在这里插入图片描述
  3. 注意点:阿里云的模版会默认帮我们进行一些配置和创建一些代码
    在这里插入图片描述

方法二:通过IDEA配置阿里云的网址去下载

在这里插入图片描述

方法三:手动在pom里改jdk的版本

  1. 还需要修改MyBatis的版本:Mybatis的版本并没有在SpringBoot里管理,而是在pom.xml里管理,所以当更改SpringBoot版本时,MyBatis版本可能会与其冲突,也因此我们可能需要手动修改MyBatis的版本
    • 引入MyBatis时,必须要配置数据库,不然也会报错
    • 有时候后端出错,不是代码而是缓存的问题,需要clean一下
      在这里插入图片描述

6.3 创建jdk17的项目

jdk17官方仍在维护,直接创建即可

七、属性文件有乱码

  1. 问题描述:代码在写的时候没有出现乱码,后续打开出现了乱码
  2. 解决方法
    在这里插入图片描述
  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值