1. 为什么选择 Spring Boot 3.0 + Mybatis Plus?
如果你正在用 Java 做 Web 开发,尤其是需要和数据库打交道,那你大概率绕不开 Spring Boot 和 MyBatis。但说实话,原生的 MyBatis 虽然灵活,写起单表的增删改查来,那个 XML 文件或者一堆注解,重复劳动是真不少。每次新加个表,实体类、Mapper接口、XML映射文件、Service层……一套流程下来,感觉时间都花在了机械的复制粘贴上。
这时候,Mybatis Plus(后面咱们就亲切地叫它 MP)就该登场了。我用了好几年,它给我的感觉就像一个“超级外挂”,在 MyBatis 的基础上,只做增强,不改动任何底层东西。你之前怎么写 MyBatis,现在还能怎么写,但它给你提供了大量“开箱即用”的利器。最香的就是那个通用 Mapper和通用 Service,继承一下,基础的 CRUD(增删改查)方法全都有了,根本不用你写一句 SQL。这效率提升,可不是一点半点。
那为什么是 Spring Boot 3.0呢?Spring Boot 3.0 是一个重要的里程碑,它基于 Spring Framework 6.0,全面拥抱了 Java 17+。这意味着更好的性能、更现代的 API(比如全新的 HTTP 接口客户端),以及对 GraalVM 原生镜像的正式支持,为未来应用变得更小、启动更快铺平了道路。虽然现在可能还用不到原生编译,但站在技术栈的前沿,用新版本构建新项目,能避免以后升级的阵痛。
所以,Spring Boot 3.0 提供现代化、高效的运行时底座,Mybatis Plus 提供极致简洁、强大的数据访问能力,这两者结合,简直就是构建后端服务,特别是需要快速迭代的业务中台的“黄金搭档”。接下来,我就手把手带你,从一个空项目开始,把这套组合拳打好,搭出一个既标准又高效的数据访问层脚手架。这个脚手架你以后在新项目里直接复制过去改改配置就能用,省心省力。
2. 从零开始:项目初始化与依赖配置
万事开头难,但咱们这个头,开起来特别简单。我习惯用 IntelliJ IDEA,你也可以用你顺手的 IDE。打开 IDEA,选择 New Project,找到 Spring Initializr。这里有个小坑需要注意:Spring Boot 3.0 要求 JDK 17 或更高版本,所以请确保你的项目 SDK 选对了。
在 Project Metadata 页面,填好你的 Group、Artifact(比如 demo-mp)。打包方式选 Jar,Java 版本选 17 或 21。在依赖选择页面,我们只需要勾选最基础的 Spring Web 依赖就行。为什么不多选?因为 Mybatis Plus 的依赖我们手动在 pom.xml 里加,这样版本更可控。点击创建,一个干净的 Spring Boot 3.0 项目就生成了。
接下来,打开项目里的 pom.xml 文件,这是咱们的“装备清单”。我们需要添加几样核心装备:
- MySQL驱动:连接数据库的桥梁。
- Druid连接池(可选但推荐):阿里巴巴出品的高性能数据库连接池,监控功能强大,生产环境必备。
- Mybatis Plus Starter:主角登场。
mybatis-spring:这是 Spring Boot 3.0 整合的关键! 必须用 3.0.x 版本,否则启动会报错。
我把完整的依赖配置贴出来,你直接复制到 <dependencies> 标签里就行:
<dependencies>
<!-- Spring Boot 基础Web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Druid 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
<!-- MyBatis Plus 核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
</dependency>
<!-- 关键!Spring Boot 3.0 需要此版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.3</version>
</dependency>
<!-- 测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Lombok,简化实体类编写,非必需但强烈推荐 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
这里重点说一下 mybatis-spring 这个依赖。在 Spring Boot 2.x 时代,我们通常不需要显式引入它,因为 mybatis-spring-boot-starter 内部都管理好了。但升级到 Spring Boot 3.0 后,由于一些底层接口的变化,必须显式引入兼容的 3.0.x 版本,否则你会遇到一个典型的错误:Invalid value


1万+

被折叠的 条评论
为什么被折叠?



