1. SpringBoot与Maven的组合为什么是Java开发者的第一课先说结论SpringBoot和Maven这套组合几乎是当前Java后端开发的事实标准。你在招聘网站上随便翻一个Java岗位要求里基本都会写“熟悉SpringBoot、熟悉Maven”。如果你正在准备毕业设计、正在转行学Java、或者刚入职发现团队项目跑不起来那这篇内容就是给你准备的。Maven解决的是“依赖管理”和“构建”的问题。打个比方一个项目就像装修房子Maven就是那个装修公司——你需要什么材料jar包它帮你去仓库采购你需要什么工序编译、测试、打包它帮你按流程执行。你只需要在pom.xml里告诉它“我要用SpringBoot 2.7.18我要用MySQL驱动”剩下的下载、搬运、整理全部交给它。SpringBoot解决的是“应用开发效率”的问题。在没有SpringBoot的年代搭建一个Spring项目至少要写一大堆XML配置还要操心Tomcat怎么部署、日志怎么配、数据源怎么连。SpringBoot把这些统统自动化了内嵌Tomcat、自动配置、开箱即用——你写一个类加上SpringBootApplication注解main方法一跑一个能处理HTTP请求的服务就起来了。但是很多新手卡在了第一步Maven环境装好了却不知道配置阿里云镜像SpringBoot项目创建了却不知道为什么依赖一直在报红。这些坑我当年一个个踩过今天这篇就围绕“SpringBoot Maven快速上手”这个主题把环境准备、Maven配置、项目搭建、常见报错一次性讲清楚。这篇文章适合以下几类人正在准备SpringBoot相关毕业设计的在校学生刚接触Java后端、想快速跑通一个Web项目的转行开发者公司项目里已经用了Maven但一直“会用”却“不懂”的新人IDEA里创建SpringBoot项目总是失败、或者下载依赖慢到怀疑人生的同学。我会从零开始带着你一步步把整套环境跑通并且把那些官方文档里不会写、但实际开发中一定会遇到的坑都标注出来。2. 项目整体思路拆解先把Maven吃透再谈SpringBoot2.1 为什么建议先装Maven再创建SpringBoot项目很多新手惯用的流程是打开IDEA新建项目选Spring Initializr填好信息后点Finish然后静静等待依赖下载。问题来了——如果IDEA用的是自带Maven有的IDEA版本内置了Maven但默认配置纯国外镜像源你会发现依赖下载速度堪比龟速一个spring-boot-starter-web可能就要下载好几分钟遇到网络波动直接失败整个项目红成一片。正确的顺序是先手动安装Maven配置好本地仓库和阿里云镜像再让IDEA使用这个Maven。这样你创建SpringBoot项目时依赖下载走的是国内镜像速度能快几十倍而且后面你在命令行执行mvn clean package、mvn spring-boot:run也都能用同一套配置不会出现“IDEA里能跑、命令行跑不了”的尴尬情况。另外先从Maven入手还有个好处你能理解项目的目录结构、pom.xml的作用、依赖是从哪里来的。如果你直接用IDEA自带的Maven把项目跑起来了遇到“Cannot resolve symbol ‘SpringBootApplication’”这种报错时你会完全不知道从哪里排查。但如果你理解了Maven的工作原理这种问题一眼就能定位。2.2 环境准备JDK、Maven、IDEA的版本搭配逻辑在动手之前先把三件套的版本搭配说清楚。很多新手在这里吃了大亏尤其是“SpringBoot版本太高”这个问题。JDK版本如果是在校生做毕设、或者公司是老项目JDK 1.8依然是最主流的选择。SpringBoot 2.x系列的最后一个版本是2.7.18它完全兼容JDK 1.8也是目前生产环境使用最广泛的组合。如果你选JDK 17那建议搭配SpringBoot 3.x但SpringBoot 3.x对配置方式有不少改动比如javax.包名变成了jakarta.新手过渡会有一些不习惯。所以我的建议是学习阶段或毕业设计直接选JDK 1.8 SpringBoot 2.7.18资料多、问题少、教程多。Maven版本当前最新的Maven稳定版是3.9.x搭配JDK 1.8完全没问题。网上有一些教程让你下载“Maven 3.88”我在这里要特别提醒Maven官方根本没有3.88这个版本——Maven的版本号从3.6、3.8、3.9一路走过来最高就是3.9.x。你如果真的下载了一个叫“3.88”的安装包大概率是第三方打包的来源不可控有一定风险。去Maven官网maven.apache.org下载安装包才是正确做法。组合方案JDK版本SpringBoot版本Maven版本适用场景稳妥型推荐新手JDK 1.82.7.183.9.x毕设、老项目、学习进阶型JDK 173.2.x以上3.9.x新项目、想尝鲜保守型JDK 1.82.5.x左右3.6.x极端老项目兼容IDEA版本IDEA 2023.x、2024.x都能很好地支持JDK 1.8 SpringBoot 2.x Maven 3.9.x的组合。但要留意一点IDEA社区版Community对SpringBoot的支持有阉割虽然能跑Maven项目但创建SpringBoot项目还是得用官网的start.spring.io或者用IDEA专业版Ultimate。如果你只有社区版下面我讲的“用IDEA创建SpringBoot项目”步骤里会用到Spring Initializr这个功能这需要联网访问start.spring.io来完成初始化。版本搭配是整套环境最关键的“地基”地基没打好后面每一步都会踩坑。接下来我们进入实操环节。3. Maven安装与配置从下载到阿里云镜像一步步来3.1 Maven下载与安装先说Windows环境这也是大多数新手用的系统。打开浏览器访问Maven官网maven.apache.org找到Download页面往下拉找到“Files”区域你会看到类似这样的压缩包文件apache-maven-3.9.9-bin.tar.gz —— Linux和macOS用的apache-maven-3.9.9-bin.zip —— Windows用户下载这个apache-maven-3.9.9-src.zip —— 源码包普通用户不用管下载zip压缩包后解压到一个路径中不包含中文和空格的目录比如D:\dev\apache-maven-3.9.9。为什么不能有中文路径因为很多Java工具对中文路径处理不好Maven在解析本地仓库路径时如果碰到中文可能触发编码问题到时候排查起来非常头疼干脆从源头规避掉。然后配置环境变量。右键“此电脑” - “属性” - “高级系统设置” - “环境变量”在系统变量里新增MAVEN_HOME变量值为你的Maven解压路径。接着双击Path变量新增一条%MAVEN_HOME%\bin。配置完成后打开一个新的命令行窗口注意必须重开窗口否则环境变量不会刷新执行mvn -v验证。如果看到类似这样的输出说明Maven安装成功Apache Maven 3.9.9 (8e9479a8c1f3f6b2f4f2084d5c7f3c4d5e6f7a8b) Maven home: D:\dev\apache-maven-3.9.9 Java version: 1.8.0_202, vendor: Oracle Corporation Java home: D:\dev\jdk1.8.0_202\jre Default locale: zh_CN, platform encoding: GBK这里有个非常值得注意的细节输出的“Java version”必须显示你希望Maven使用的JDK版本。如果你的电脑装了多个JDK而Maven默认用了JDK 17那你编译SpringBoot 2.7.18项目时可能会遇到奇怪的兼容性问题。Maven到底用哪个JDK取决于JAVA_HOME环境变量指向哪里。所以配置完Maven后一定要检查JAVA_HOME是否指向了正确的JDK路径。macOS环境的安装略有不同建议用Homebrew一条命令搞定brew install maven安装完成后同样执行mvn -v验证。如果你的mac上没装Homebrew也可以下载tar.gz压缩包解压后配置~/.bash_profile或~/.zshrc文件设置M2_HOME和PATH。3.2 修改settings.xml这一步决定了你下载依赖的速度Maven安装好之后如果你直接开始建项目你会发现自己陷入一个等待循环——下载依赖极慢甚至直接失败。根本原因在于Maven默认的中央仓库服务器在国外国内访问的时候延迟高、带宽低高峰期直接连不上。解决办法是修改Maven的配置文件settings.xml把下载源换成国内镜像。settings.xml位于Maven解压目录下的conf目录中。用任意文本编辑器打开它找到mirrors标签在标签内部添加阿里云镜像配置mirror idaliyunmaven/id mirrorOfcentral/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirror这里简单解释一下配置项的含义mirrorOf定义这个镜像要代理哪个远程仓库。写central表示只代理中央仓库这也是最常用的配置。url镜像仓库的实际地址阿里云公共仓库的地址里聚合了Maven Central、JCenter等主流仓库的内容Java开发中最常用的依赖几乎都能在里面找到。id镜像的唯一标识随便取一个不重复的名字就行。修改完保存然后重新执行一个Maven命令让它生效。你可以先在命令行执行mvn help:system这个命令会触发Maven下载一些基础插件如果速度明显变快说明阿里云镜像已经生效。另外提一句多个镜像的问题。有些场景下你可能同时使用多个镜像仓库比如公司内部的私有仓库这时候可以配置多个mirror节点。但要注意如果多个mirror的mirrorOf都配置成centralMaven只会用第一个匹配的镜像后面的不会生效。所以如果需要多个仓库最好把镜像和仓库的定义区分开。3.3 本地仓库路径修改别动不动就C盘爆红Maven默认的本地仓库路径是~/.m2/repository也就是用户目录下的.m2文件夹。如果你用的是C盘作为系统盘那么随着依赖越下载越多C盘空间会越来越紧张。更关键的是一旦哪天C盘空间不足或者系统还原出了问题你辛辛苦苦下载好的一堆依赖全都没了下次建项目又得重新下载。我个人的习惯是把本地仓库改到D盘或独立的数据盘。同样在settings.xml中找到localRepository标签这个标签通常是注释状态取消注释并修改路径localRepositoryD:\dev\maven-repository/localRepository这里有两个需要注意的细节。第一这个目录最好别放在Maven安装目录的子目录里因为以后升级Maven版本时你可能直接删除旧的Maven安装目录本地仓库要是放在里面就一起没了。第二路径同样不要包含中文和空格。改完之后之前下的依赖不会自动搬过去第一次构建项目时Maven会把需要的依赖重新下载到新目录这正好验证你的镜像配置是否生效。3.4 配置JDK编译版本避免“源选项1.5已过时”Maven默认的编译版本很老Java 1.5如果你不额外配置执行mvn compile时会看到“源选项1.5已过时将在未来所有发行版中删除”这样的警告。虽然SpringBoot项目里pom.xml通常会通过spring-boot-starter-parent来统一管理编译版本但为了保险起见我建议在settings.xml的profiles标签里加上这样一段全局配置一劳永逸profile idjdk-1.8/id activation activeByDefaulttrue/activeByDefault /activation properties maven.compiler.source1.8/maven.compiler.source maven.compiler.target1.8/maven.compiler.target maven.compiler.compilerVersion1.8/maven.compiler.compilerVersion /properties /profile这段配置的作用是告诉Maven编译Java代码时源码和目标字节码的版本都用Java 1.8。如果以后你切到JDK 17的新项目记得回来把这个配置改成17否则会出现“源选项1.8已过时”或者更严重的编译错误。到此为止Maven的安装与配置就算真正完成了。很多教程到这里就直接进入创建项目的环节但我想额外提醒一个容易被忽略的检查项settings.xml文件必须是UTF-8编码保存。你如果用了Windows自带的记事本改这个文件保存时可能会变成ANSIGBK编码导致Maven解析时出现乱码报类似“MalformedByteSequenceException”的错误。建议用Notepad、VS Code或者IDEA来编辑XML文件保存时显式选择UTF-8编码。4. 创建SpringBoot项目并跑通第一个接口4.1 IDEA里配置Maven让IDEA听你指挥Maven配置好后接着打开你的IDEA。在IDEA顶部菜单打开“File” - “Settings”在搜索框输入“Maven”进入“Build, Execution, Deployment” - “Build Tools” - “Maven”这个设置页。把以下三个选项改成你自己的Maven配置Maven home path选择你解压的Maven安装目录比如D:\dev\apache-maven-3.9.9。IDEA默认会用它自带的Maven这样是不对的。User settings file勾选Override然后指定你的settings.xml路径比如D:\dev\apache-maven-3.9.9\conf\settings.xml。IDEA会读取这个文件里的本地仓库路径和阿里云镜像配置。Local repository勾选Override后它会自动识别到你在settings.xml里配置的本地仓库路径。如果没有自动识别手动填一下也可以。这步做完点Apply后再点OK。为什么要在这里大费周章因为IDEA新建项目时依赖的解析过程全都要走这套配置。如果你漏掉了User settings file的指定IDEA可能还是用默认的中心仓库下载速度依旧慢得离谱。4.2 用Spring Initializr创建SpringBoot项目IDEA专业版创建SpringBoot项目的路径是“File” - “New” - “Project”在左侧选择“Spring Initializr”。如果你是社区版也不用慌可以打开浏览器访问start.spring.io在线配置好后下载zip包再把zip包解压后用IDEA以“Open”方式导入。不管哪种方式你都需要填写以下核心信息Name项目名称比如demo或者springboot-demo全小写字母加连字符不要用中文。LanguageJava。TypeMaven。这里一定要选Maven有的版本默认是Gradle选错的话你的pom.xml就变成build.gradle了跟Maven就没关系了。Group包名的前缀一般用域名倒写比如com.example。Artifact生成jar包的名称默认会跟Name一致。Java版本选择8对应JDK 1.8。SpringBoot版本选2.7.18。如果你在IDEA的版本列表里找不到这个版本可以先选一个2.7.x系列的近版本后面在pom.xml里再改成2.7.18也行。接下来是选择依赖Dependencies的环节。对于快速上手的第一个项目只需要加一个依赖Spring Web这是SpringBoot做Web开发的核心starter包含了内嵌Tomcat、SpringMVC等一整套Web能力。选好依赖后点FinishIDEA开始创建项目。创建完成后你会看到项目的目录结构。如果你之前的配置一切正确IDEA会自动开始下载依赖你能在右下角看到下载进度条速度应该非常快几分钟内就能完成。4.3 看懂pom.xml和项目目录你就理解了一半的SpringBoot项目创建完成后先打开pom.xml看一下里面已经有SpringBoot的“家底”了parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.7.18/version relativePath/ /parent dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency /dependencies这部分叫“父工程”它干了一件很重要的事统一管理所有SpringBoot相关依赖的版本号。所以spring-boot-starter-web这个依赖里没有写 因为版本号已经被父工程接管了。这就意味着你不用担心SpringBoot各个starter之间版本不一致的问题。项目目录结构同样重要。新建的项目里默认生成这样一个包结构src ├── main │ ├── java │ │ └── com.example.demo │ │ └── DemoApplication.java │ └── resources │ ├── static 放静态资源 │ ├── templates 放模板引擎页面比如Thymeleaf │ └── application.properties 核心配置文件 └── test └── java └── com.example.demo └── DemoApplicationTests.javaDemoApplication.java这个类是启动类它的核心是SpringBootApplication注解。你可以把这个注解理解为“总开关”——它同时开启了三个功能SpringBootConfiguration标记这是配置类、EnableAutoConfiguration开启自动配置、ComponentScan扫描当前包及子包下的组件。这就是为什么你的Controller放在com.example.demo的子包下能被自动识别而放在外面就不行。4.4 写一个Controller把项目跑起来接下来我们来写第一个接口。在DemoApplication.java同级的目录下或者下面建一个controller子包新建一个类HelloControllerpackage com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; RestController public class HelloController { GetMapping(/hello) public String hello() { return Hello SpringBoot!; } }然后回到DemoApplication.java右键点击类名选择“Run DemoApplication”或者直接点类定义旁边的小绿三角。启动过程中你会看到控制台输出一大段日志最后看到类似这样的内容Tomcat started on port(s): 8080 (http) with context path Started DemoApplication in 2.3 seconds (JVM running for 2.9)看到这行说明你的SpringBoot项目已经成功跑起来了。打开浏览器访问http://localhost:8080/hello页面显示“Hello SpringBoot!”恭喜你第一步完成了。这里想解释一下内嵌Tomcat的原理SpringBoot的spring-boot-starter-web依赖里自带了Tomcat依赖应用启动时它会直接在内存中启动一个Tomcat实例并监听8080端口不需要你额外安装或配置服务器。这比传统Java Web开发方便了太多——以前把WAR包部署到外部Tomcat每次改代码都要重启Tomcat现在直接改代码、IDEA自动重启、刷新页面就能看到效果。5. 常见问题与排查技巧实录新手必看的避坑手册以下问题是我在带新人过程中经常遇到的也是各类搜索平台上“springboot maven”相关高频问题的汇总我把它们整理成速查表再逐个展开讲解。问题现场根本原因快速解决方案依赖无限下载中速度极慢未配置阿里云镜像在settings.xml中配置mirrorCannot resolve symbol ‘SpringBootApplication’依赖未下载成功或IDEA未刷新检查Maven配置点击刷新按钮ReimportWAS unable to find symbol / ClassNotFound依赖冲突或缺失检查pom文件执行mvn clean packageMaven 3.88下载不到版本号不存在下载到山寨包去官网下载3.9.x‘com.mysql:mysql-connector-j:release’ cannot be resolvedMySQL驱动坐标不对或没加版本号使用正确的坐标并指定版本IDEA无法创建SpringBoot项目不支持JDK 1.8IDEA版本太新/配置问题改用start.spring.io手动创建8080端口被占用有其他程序占用了端口修改application.properties中的server.port编译时出现“源选项1.5已过时”Maven编译级别太低settings.xml中配置maven.compiler.source和target5.1 依赖下载慢或失败99%是镜像问题这是全网最普遍的SpringBoot新手问题。我可以比较肯定地说只要你的项目创建后长时间停留在一个空状态、或者pom.xml里大量依赖显示红波浪线基本可以判断是依赖没有下载成功。核心原因就是Maven默认中央仓库的服务器在国外网络波动稍大一点下载直接超时。处理方式在上面的章节我已经写了——配置阿里云镜像。这里再补充一个进阶技巧如果你是在公司内网网络策略限制了对公网的访问那你还得配置公司内部的私服地址。具体的配置方法是在settings.xml里配置servers和repositories然后把mirror指向私服地址。这个一般需要找公司的运维或老开发要配置模板自己不要瞎猜。5.2 IDEA创建不了SpringBoot项目也不能用JDK 1.8这个问题的出现往往不是因为代码问题而是IDEA版本和JDK版本的不匹配。新版IDEA2024.x、2025.x对旧版JDK 1.8的支持虽然还有但在某些场景下比如创建SpringBoot项目时初始化的过程可能出现异常导致一直转圈或报错。我个人推荐的解决方案是优先使用IDEA 2023.x或2024.x版本这两个版本对JDK 1.8的支持相对稳定。如果打开项目时提示不支持JDK 1.8换个思路直接用start.spring.io生成项目压缩包然后用IDEA以“Open”方式导入。这样不会触发IDEA内置的Spring Initializr流程兼容性反而更好。检查IDEA中Project Structure是否正确指定了JDKFile - Project Structure - Project Settings - Project在SDK位置选择JDK 1.8。5.3 某个依赖在pom.xml里飘红别再反复刷新浪费时间依赖飘红的意思是IDEA解析这个依赖失败了原因有很多但常见的就这么几个第一坐标写错了。比如有的人会把spring-boot-starter-web的groupId写成org.springframework.boot的变体或者多了个空格、少了连字符。你先去Maven中央仓库网站上搜一下这个依赖对比正确坐标仔细核对。第二版本号没有写或者版本不兼容。有的依赖必须显式指定版本号比如MySQL驱动。在Maven中央仓库中搜索“mysql-connector-j”你会发现它最近版本甚至已经改名了。在SpringBoot 2.7.18项目里推荐使用的坐标是dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId version8.0.33/version /dependency如果哪天你还是看到“cannot be resolved”的报错那就检查IDEA右下角是否有“Maven projects need to be imported”的提示有的话点Import Changes或者直接点Maven侧边栏里的刷新按钮两个箭头的圆形图标。这个操作会强制IDEA重新解析pom.xml。第三本地仓库缓存了损坏的文件。如果你之前因为网络中断导致某个依赖只下了一半那么即使之后网络恢复了Maven也不会重新下载这个损坏的半截文件。解决方法是去本地仓库目录比如D:\dev\maven-repository找到对应的文件夹删除它然后重新刷新让Maven重新下载。5.4 SpringBoot版本太高依赖不兼容怎么办搜索热词里有“springboot版本太高”这个点。确实SpringBoot 3.x虽然已经发布很久了但并不是所有开源组件都同步跟进。比如一些老牌的第三方库还在用javax.*包而SpringBoot 3.x强制要求jakarta.*包直接导致项目启动时NoClassDefFoundError。如果你只是做毕设或学习我强烈建议直接用SpringBoot 2.7.18无痛兼容各种教程和第三方库。如果你的公司或团队指定用SpringBoot 3.x那就做好心理准备网上找到的大部分教程可能都不适用需要看官方文档适配。5.5 8080端口被占用启动直接失败这是最常见的冲突性报错启动日志里会出现一行类似“Web server failed to start. Port 8080 was already in use”的内容。解决办法有两个任选其一第一种是找出占用8080端口的进程并结束它。在Windows命令行执行netstat -ano | findstr 8080找到PID后用taskkill /PID 进程号 /F结束进程。但注意这个方法要小心操作别误杀了系统进程。第二种是换个端口。在src/main/resources/application.properties里加一行server.port8081改完后SpringBoot就会监听8081端口。我个人的建议是本地开发时如果多个服务同时跑给每个服务分配不同的端口是更干净的做法不会互相干扰。5.6 mvn命令在IDEA里能跑命令行里报“不是内部或外部命令”这个问题是因为你在配置Maven环境变量后打开的是已经存在的旧命令行窗口环境变量只在窗口启动时读取一次。重新打开一个CMD或PowerShell窗口再执行mvn -v就能识别到命令了。如果你重新打开窗口后还是不行检查一下环境变量里添加的MAVEN_HOME路径是否正确以及Path变量里是否真的包含了%MAVEN_HOME%\bin这一条。6. 再进一步把Maven常用命令和SpringBoot开发融会贯通6.1 Maven核心命令直接提高日常开发效率既然已经上手了下面这几个Maven命令建议你熟练背诵它们是日常开发中使用频率最高的命令作用使用场景mvn clean清理target目录删除旧的编译产物mvn compile编译源码检查代码能不能编译通过mvn test执行测试跑单元测试用例mvn package打包成jar/war打包后部署到服务器mvn install打包并安装到本地仓库供其他本地项目引用mvn spring-boot:run直接启动SpringBoot应用命令行启动服务注意这些命令可以组合使用比如最常见的发布命令是mvn clean package -DskipTests。加-DskipTests参数是为了跳过测试加快打包速度不加的话如果你的测试类里有失败的用例打包会直接失败。这在赶工时是一个非常实用的参数。还有一个常用的参数是-U强制更新快照依赖比如mvn clean package -U。当你引用的第三方包是SNAPSHOT版本时Maven默认不会频繁检查更新加-U可以强制强制刷新最新快照。6.2 SpringBoot的核心配置文件application.properties的使用SpringBoot默认的配置文件是application.properties你在里面可以修改端口、数据库连接、日志级别等一堆配置。比如# 服务端口 server.port8080 # 应用上下文路径 server.servlet.context-path/demo # 数据库连接以MySQL为例 spring.datasource.urljdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai spring.datasource.usernameroot spring.datasource.password123456 # 日志级别 logging.level.com.example.demodebug配置里有一个容易踩的坑MySQL 8.x以上的驱动必须在连接URL后面加上serverTimezone参数否则会报“The server time zone value”相关的时区错误。上面我写的是Asia/Shanghai国内用户直接照抄就行。另外你也可以把配置拆成多环境文件application-dev.properties、application-prod.properties然后通过在application.properties里写spring.profiles.activedev来切换环境。这个技巧做毕设可能用不上但到公司里几乎是标配建议早点养成习惯。6.3 命令行启动SpringBoot项目的正确姿势在IDEA里直接Run虽然方便但当你需要在一台没有图形界面的Linux服务器上部署项目时你就必须依赖命令行操作了。整个流程其实很简单第一步在项目根目录执行mvn clean package -DskipTests打包好的jar包会生成在target目录下名字类似demo-0.0.1-SNAPSHOT.jar。第二步把jar包上传到服务器执行java -jar demo-0.0.1-SNAPSHOT.jar启动。注意服务器上必须安装了正确版本的JDK否则会报“UnsupportedClassVersionError”或“ClassNotFoundException”。如果你想在服务器后台常驻运行用nohup命令nohup java -jar demo-0.0.1-SNAPSHOT.jar app.log 21 这条命令的含义是让Java进程在后台运行输出内容写入app.log文件即使你关闭终端也不会终止进程。等下次需要停服务时先查进程PID再kill掉ps -ef | grep java。6.4 一个典型的学习路径建议逐步扩展项目功能从“能跑”到“会写”你需要一步步往这个基础SpringBoot项目里加东西。我的建议是不要急着同时学一堆框架先把最简单的场景一步步跑通第一阶段写完一个GET接口能返回字符串或JSON用RestController和GetMapping。第二阶段连接数据库写一个简单的增删改查接口。这时候需要引入spring-boot-starter-jdbc或spring-boot-starter-data-jpa以及MySQL驱动。如果你的毕设涉及用户管理这一步就是核心。第三阶段引入MyBatis或MyBatis-Plus来操作数据库。搜索热词里提到的“mybatis的分页插件的用法 springboot”就是在这阶段要解决的——引入pagehelper插件配置好拦截器用PageHelper.startPage(page, size)即可实现分页。第四阶段学SpringBoot拦截器/过滤器处理登录校验、日志记录、XSS攻击过滤等。等到这一系列功能都自己手写过一遍你就不再是“SpingBoot新手”了而是真正具备独立开发能力的学习者。最后再分享一点实际经验我从一开始说的“SpringBoot Maven快速上手”这件事其实最核心的并不是某个具体的配置或命令而是一条通用规律工具链的版本一致性决定了你整个开发过程是否顺畅。JDK 1.8、SpringBoot 2.7.x、Maven 3.9.x这三者搭配是我验证过最省心的组合如果你自学的过程中发现网上教程和你的实际操作对不上先检查版本大概率是版本错位在捣乱。还有一个很多人忽略的好习惯遇到依赖下载问题先别急着百度“IDEA 依赖报错怎么办”而是去本地仓库的目录里看看文件是否完整。很多莫名其妙的Maven问题归根到底就是本地仓库里躺着一个被截断的.lastUpdated后缀文件。删掉刷新解决问题这比在网上翻一百个无效答案都快。Maven和SpringBoot这套东西说难不难说简单也不简单核心在于你愿不愿意花一下午时间把环境彻底搞懂。这篇写到的每一个坑都是无数初学者真金白银踩出来的照着配置一次走通后面几周的学习体验会顺滑非常多。如果你在实操过程中遇到其他问题欢迎带着具体的报错信息去社区交流别光截一张“依赖报红”的图把配置和pom文件贴出来大家才能更快帮你定位。