Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换
    		       		warning:
    		            这篇文章距离上次修改已过425天,其中的内容可能已经有所变动。
    		        
        		                
                
@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()方法切换到不同的数据源,执行数据库操作后,记得清除数据源类型以避免影响后续操作。
评论已关闭