MyBatis-Plus在Spring Boot 3中的Gradle配置指南
·
MyBatis-Plus在Spring Boot 3中的Gradle配置指南
引言:为什么选择MyBatis-Plus与Spring Boot 3的完美组合?
还在为繁琐的MyBatis配置而烦恼吗?还在手动编写重复的CRUD代码吗?MyBatis-Plus作为MyBatis的增强工具包,与Spring Boot 3的结合将为你的开发效率带来革命性提升。本文将为你详细解析如何在Spring Boot 3项目中通过Gradle完美配置MyBatis-Plus,让你彻底告别配置烦恼,专注于业务逻辑开发。
通过本文,你将获得:
- ✅ Spring Boot 3 + MyBatis-Plus的完整Gradle配置方案
- ✅ 自动配置原理深度解析
- ✅ 多数据源配置的最佳实践
- ✅ 代码生成器的集成使用
- ✅ 常见问题排查与性能优化技巧
环境要求与版本兼容性
在开始配置之前,确保你的开发环境满足以下要求:
| 组件 | 最低版本 | 推荐版本 | 说明 |
|---|---|---|---|
| Java | 17 | 21 | Spring Boot 3要求Java 17+ |
| Spring Boot | 3.0.0 | 3.4.1 | 最新稳定版本 |
| MyBatis-Plus | 3.5.0 | 3.5.14 | 与Spring Boot 3完全兼容 |
| Gradle | 7.6 | 8.7 | 支持Java 17的Gradle版本 |
基础Gradle配置
1. 项目结构设置
首先,在settings.gradle中配置项目模块:
pluginManagement {
repositories {
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
gradlePluginPortal()
mavenCentral()
}
}
rootProject.name = 'mybatis-plus-demo'
2. 核心依赖配置
在build.gradle中添加Spring Boot 3和MyBatis-Plus的依赖:
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.1'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
maven { url "https://maven.aliyun.com/repository/public" }
mavenCentral()
}
dependencies {
// Spring Boot 3 核心依赖
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
// MyBatis-Plus Spring Boot 3 Starter
implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.14'
// 数据库驱动(以MySQL为例)
runtimeOnly 'com.mysql:mysql-connector-j:9.0.0'
// 开发工具
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
// 测试依赖
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') {
useJUnitPlatform()
}
3. 配置文件详解
创建application.yml配置文件:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 20
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
global-config:
db-config:
id-type: auto
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.entity
高级配置与优化
1. 多数据源配置
对于复杂的业务场景,可能需要配置多个数据源:
// 在build.gradle中添加多数据源支持
dependencies {
implementation 'com.baomidou:mybatis-plus-boot-starter:3.5.14'
implementation 'com.baomidou:dynamic-datasource-spring-boot-starter:4.3.0'
}
多数据源配置示例:
spring:
datasource:
dynamic:
primary: master
strict: false
datasource:
master:
url: jdbc:mysql://localhost:3306/master_db
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
slave1:
url: jdbc:mysql://localhost:3306/slave_db
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
2. 代码生成器配置
集成MyBatis-Plus代码生成器:
// 添加代码生成器依赖
dependencies {
implementation 'com.baomidou:mybatis-plus-generator:3.5.14'
implementation 'org.freemarker:freemarker:2.3.33'
}
创建代码生成器配置类:
public class CodeGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis_plus_demo", "root", "123456")
.globalConfig(builder -> builder
.author("developer")
.outputDir(System.getProperty("user.dir") + "/src/main/java")
.enableSwagger()
)
.packageConfig(builder -> builder
.parent("com.example")
.moduleName("system")
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.controller("controller")
)
.strategyConfig(builder -> builder
.addInclude("user", "role")
.entityBuilder()
.enableLombok()
.enableTableFieldAnnotation()
)
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
性能优化配置
1. Gradle构建优化
// 在gradle.properties中添加性能优化配置
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g
// 在build.gradle中添加构建缓存配置
buildCache {
local {
directory = new File(rootDir, 'build-cache')
removeUnusedEntriesAfterDays = 30
}
}
2. MyBatis-Plus性能配置
mybatis-plus:
configuration:
cache-enabled: true
lazy-loading-enabled: true
aggressive-lazy-loading: false
multiple-result-sets-enabled: true
use-column-label: true
use-generated-keys: true
default-executor-type: REUSE
default-fetch-size: 100
global-config:
banner: false
sql-parser-cache: true
常见问题排查
1. 版本冲突解决
当遇到版本冲突时,可以使用Gradle的依赖约束:
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:3.4.1"
}
dependencies {
dependency 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.14'
dependency 'org.mybatis:mybatis-spring:3.0.5'
dependency 'com.mysql:mysql-connector-j:9.0.0'
}
}
2. 配置验证工具
创建配置验证类确保配置正确:
@SpringBootTest
class MybatisPlusConfigValidationTest {
@Autowired
private SqlSessionFactory sqlSessionFactory;
@Test
void testSqlSessionFactory() {
assertNotNull(sqlSessionFactory);
Configuration configuration = sqlSessionFactory.getConfiguration();
assertTrue(configuration.isMapUnderscoreToCamelCase());
}
@Test
void testDataSource() {
// 数据源连接测试
}
}
部署与监控
1. 生产环境配置
# application-prod.yml
spring:
datasource:
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
hikari:
maximum-pool-size: ${DB_MAX_POOL_SIZE:20}
connection-timeout: 30000
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
2. 健康检查配置
@Configuration
public class DataSourceHealthConfig {
@Bean
public HealthIndicator dataSourceHealthIndicator(DataSource dataSource) {
return new DataSourceHealthIndicator(dataSource);
}
}
总结与最佳实践
通过本文的详细配置指南,你已经掌握了在Spring Boot 3中使用Gradle配置MyBatis-Plus的完整方案。记住以下最佳实践:
- 版本管理:始终使用兼容的版本组合,避免版本冲突
- 配置分离:将开发、测试、生产环境的配置分离
- 性能监控:启用合适的日志和监控配置
- 代码生成:充分利用代码生成器提高开发效率
- 依赖优化:使用Gradle的依赖管理功能避免冲突
MyBatis-Plus与Spring Boot 3的结合将为你的项目带来前所未有的开发体验和性能表现。现在就开始使用这个强大的组合,提升你的开发效率吧!
提示:本文配置基于MyBatis-Plus 3.5.14和Spring Boot 3.4.1版本,请根据实际项目需求调整配置参数。
更多推荐

所有评论(0)