1. 环境准备与版本选型
1.1 先把JDK和构建工具定下来
用 IntelliJ IDEA 做 Spring Boot 开发,第一件事不是装软件,而是把 JDK 和构建工具理清楚。JDK 我建议直接用 Java 17 或 Java 21 的 LTS 版本,原因很直接:Spring Boot 3.x 强制要求 Java 17 起步,而且从实际项目来看,Java 21 的虚拟线程、Records 这些特性在日常业务代码里确实能派上用场。你要还在用 Java 8,那只能停留在 Spring Boot 2.7.x,很多新版特性都享受不到,时间越久迁移成本越高。
构建工具的选择上,Maven 和 Gradle 各有拥趸。我自己的习惯是多数项目用 Maven,原因很朴素:Spring Initializr 默认生成的是 Maven 项目,IDEA 对 Maven 的支持极其成熟,pom.xml 的依赖提示和冲突分析都做得非常直观,团队协作时心智负担也低。Gradle 适合构建脚本特别复杂的场景,比如多模块的大工程、需要自定义构建逻辑的项目。对大多数 Spring Boot 业务项目来说,Maven 足够,别过度设计。
IDEA 里配置 JDK 的方式也值得说一句:打开 File -> Project Structure -> Project,在 SDK 下拉框里点 Add JDK,选好本地解压的 JDK 目录即可。注意 IDEA 有自己内置的 JBR(JetBrains Runtime),那个是 IDE 自己用的运行时,跟项目编译用的 JDK 是两码事,很多人刚接触时容易搞混。
1.2 IDEA 选哪个版本:社区版还是旗舰版
这个问题几乎每个入门 Spring Boot 的人都会问。社区版免费,但只提供 Java/Kotlin 的基础开发能力;旗舰版收费,但不止多了 Spring 专门的 Bean 跳转、依赖图、自动装配提示,还集成了数据库客户端、HTTP Client、Docker 支持等常用工具。
我的建议是:如果能用正版 License 或者公司有采购,直接上旗舰版,配合 Spring 插件的开发体验差距非常明显;如果是学生或者个人学习,社区版也完全能跑通 Spring Boot 开发,无非是少了几个便捷入口,核心编码体验没有本质差别。IDEA 官方本身也提供 30 天试用期,适合用来评估到底值不值得买。我更推荐在官方渠道下载,尽量不要碰网上那些来路不明的所谓“破解版”,一是安全没保障,工具链里被塞恶意脚本的案例不少;二是团队协作时工具不正规,出了问题很难向同事和领导交代。开发工具上省下的钱,最后大概率会在排查问题上加倍还回去。
1.3 让 Maven 在国内网络环境下跑得更顺
Spring Boot 项目创建后第一件事就是下载依赖,这一步在国内经常慢得让人怀疑人生。解决办法就一条:把 Maven 镜像换成阿里云或者其他国内源。修改 settings.xml 里的 <mirror> 节点,或者直接在 IDEA 的 Build Tools -> Maven 设置里指定自定义的 settings.xml,两种情况我都用过,后者更直观,不用跑到本地目录里找文件。
具体配置参考这一段:
xml复制<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
另外,IDEA 里的 Maven 设置还藏着两个常见坑:一是 Maven home path 默认指向 IDEA 自带的 Maven,版本可能偏旧,建议手动指定自己下载的 Maven 3.9.x;二是 Runner -> JRE 选项要和项目的 JDK 版本保持一致,否则构建时偶尔会报 Unsupported major.minor version 的错误。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 创建一个规范的 Spring Boot 项目
2.1 用 Spring Initializr 初始化项目
创建 Spring Boot 项目最稳妥的方式,就是直接在 IDEA 里用内置的 Spring Initializr。操作路径是 File -> New -> Project -> Spring Initializr,然后填 Group、Artifact,选 Java 版本和依赖。这里我建议使用 https://start.spring.io 地址,而不是默认的 https://start.aliyun.com,因为官方地址的版本更新最快,新的 Spring Boot 版本出来当天就能用上,阿里云这个地址偶尔会滞后几个小版本。
依赖选择的原则是“按需加,不要贪多”。很多人创建项目时恨不得把 Spring Web、MyBatis-Plus、Redis、Security 全勾上,结果项目还没写代码,启动时就因为依赖冲突或者配置缺失报一堆错。我建议第一版只加必要的几个:Spring Web、Validation、Lombok(如果团队允许)、Spring Boot DevTools。数据库、消息队列这些等真正要用了再通过 Maven 坐标添加,这样问题出现时你能清楚地知道是哪个新引入的依赖造成的。
2.2 项目结构怎么摆才不容易乱
Spring Boot 对项目结构的约束非常少,但越是没约束,越容易乱。我看到很多初学者把 Controller、Service、Mapper 一股脑塞在同一个包下,项目小的时候看着还好,等过了几千行代码就开始头疼了。推荐的分层结构是清晰区别于“包名按层分”和“包名按功能分”两种模式的:
按层分包,就是常见的 controller、service、mapper、entity、dto、config,适合业务简单的 CRUD 项目,大多数人上手最快。按功能分包,比如 user、order、payment 各包下放自己专属的 Controller、Service、Mapper,适合业务复杂、模块边界清晰的中大型项目。
我个人的习惯是:如果是做给客户交付的后台管理系统,用按层分包,团队里不管是初级还是高级工程师,找文件都无脑方便;如果是做长期演进的业务中台,按功能分包能大幅减少合代码时的冲突。这个选择没有绝对对错,只要团队内部统一即可。
再补充一个被很多人忽略的小点:Application 启动类一定要放在最外层包,也就是所有业务包的父包。否则 Spring Boot 扫描不到下面
