SpringBoot 3.x 整合 Mybatis-Plus,轻松实现多数据源与 Druid 监控
2023-02-16 12:51:06
在 SpringBoot 中整合 Mybatis-Plus 多数据源和 Druid
简介
随着微服务架构的普及,一个应用程序可能需要连接到多个不同的数据库。为了实现这些数据库的统一管理和操作,可以使用多数据源技术。本文将详细介绍如何在 SpringBoot 中整合 Mybatis-Plus 多数据源和 Druid 连接池。
什么是 SpringBoot 多数据源?
SpringBoot 多数据源允许在一个应用程序中使用多个不同的数据源,从而可以同时连接到多个数据库。这提供了以下好处:
- 分离不同数据源上的数据,例如用户数据和订单数据。
- 根据需要调整不同数据源的连接池设置。
- 同时使用多个数据库来实现复杂查询和优化性能。
什么是 Druid?
Druid 是一个开源的 Java 数据库连接池和监控工具。它提供以下功能:
- 连接池管理,优化数据库连接的使用。
- 数据库性能监控,提供有关连接池使用、查询性能和数据库健康状况的见解。
- 管理控制台,用于查看数据库指标和管理连接池设置。
整合 Mybatis-Plus 多数据源和 Druid
1. 引入依赖
在项目中引入以下 Maven 依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.9</version>
</dependency>
2. 配置数据源
在 application.properties
文件中配置数据源信息:
# Primary 数据源
spring.datasource.primary.url=jdbc:mysql://localhost:3306/primary
spring.datasource.primary.username=root
spring.datasource.primary.password=password
# Secondary 数据源
spring.datasource.secondary.url=jdbc:mysql://localhost:3307/secondary
spring.datasource.secondary.username=root
spring.datasource.secondary.password=password
# Druid 配置
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
3. 配置 Mybatis-Plus
在 application.properties
文件中配置 Mybatis-Plus:
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
4. 使用 Mybatis-Plus 多数据源
在需要使用数据源的类上添加 @DS
注解,指定要使用的数据源:
@Mapper
@DS("primary")
public interface UserMapper {
@Select("select * from user where id = #{id}")
User getById(@Param("id") Long id);
}
5. 监控和管理数据库
Druid 提供了一个管理控制台(默认情况下位于 /druid/*
),用于监控和管理数据库连接池。可以查看连接池使用情况、查询性能和数据库健康状况。
常见问题解答
1. 如何在同一事务中使用多个数据源?
这通常是不推荐的,因为事务管理变得更加复杂。最好使用一个数据源来管理所有操作。
2. Druid 管理控制台的默认密码是什么?
默认密码是 admin
。
3. 如何自定义 Druid 管理控制台的路径?
在 application.properties
文件中设置 spring.datasource.druid.stat-view-servlet.url-pattern
属性,例如:
spring.datasource.druid.stat-view-servlet.url-pattern=/custom-path/*
4. 如何禁用 Druid 管理控制台?
在 application.properties
文件中将 spring.datasource.druid.stat-view-servlet.enabled
设置为 false
。
5. 如何配置 Druid 连接池设置?
在 application.properties
文件中使用以下前缀配置 Druid 连接池设置:
spring.datasource.druid.##
结论
通过整合 Mybatis-Plus 多数据源和 Druid,可以在 SpringBoot 应用程序中管理和操作多个数据库。这提供了数据分离、连接池优化和数据库监控的能力。本文提供了逐步的指南,以及常见问题的解答,以帮助读者成功集成这些技术。