Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
// 创建动态数据源对象
DynamicDataSource dynamicDataSource = new DynamicDataSource();
// 配置默认数据源
dynamicDataSource.setDefaultTargetDataSource(primaryDataSource());
// 配置多数据源
Map<Object, Object> dataSourceMap = new HashMap<>();
dataSourceMap.put("primary", primaryDataSource());
dataSourceMap.put("secondary", secondaryDataSource());
// 设置数据源映射
dynamicDataSource.setTargetDataSources(dataSourceMap);
// 返回动态数据源
return dynamicDataSource;
}
@Bean
@Primary
public DataSource primaryDataSource() {
// 配置并返回主数据源
return DataSourceBuilder.create().build();
}
@Bean
public DataSource secondaryDataSource() {
// 配置并返回次数据源
return DataSourceBuilder.create().build();
}
}
// 使用时,可以通过以下方式切换数据源
DynamicDataSourceContextHolder.setDataSourceType("secondary");
// 执行数据库操作
DynamicDataSourceContextHolder.clearDataSourceType();
这个配置类定义了两个数据源,一个主数据源和一个次数据源,并通过DynamicDataSource类实现了数据源的切换。在实际使用时,可以通过DynamicDataSourceContextHolder.setDataSourceType()方法切换到不同的数据源,执行数据库操作后,记得清除数据源类型以避免影响后续操作。
评论已关闭