springboot mybatis plus 多数据源,spring boot+mybatis多数据源和动态数据源配置的示例分析

科技资讯 投稿 6200 0 评论

springboot mybatis plus 多数据源,spring boot+mybatis多数据源和动态数据源配置的示例分析

我们常常会遇到一些问题,比如spring boot+mybatis多数据源和动态数据源配置的示例分析等问题,我们该怎么处理呢。下面这篇文章将为你提供一个解决思路,希望能帮你解决到相关问题。

1. Spring Boot+Mybatis多数据源的配置

Spring Boot+Mybatis多数据源的配置,主要分为以下几个步骤:

1)配置数据源:在application.properties文件中配置多个数据源,如下所示:


spring.datasource.master.url=jdbc:mysql://localhost:3306/master
spring.datasource.master.username=root
spring.datasource.master.password=123456
spring.datasource.slave.url=jdbc:mysql://localhost:3306/slave
spring.datasource.slave.username=root
spring.datasource.slave.password=123456

2)配置Mybatis:在application.properties文件中配置Mybatis,如下所示:


mybatis.type-aliases-package=com.example.entity
mybatis.mapper-locations=classpath:mapper/*.xml

3)定义数据源:在Spring Boot的配置类中定义多个数据源,如下所示:


@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.master")
    public DataSource masterDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.slave")
    public DataSource slaveDataSource() {
        return DataSourceBuilder.create().build();
    }
}

4)定义SqlSessionFactory:在Spring Boot的配置类中定义多个SqlSessionFactory,如下所示:


@Configuration
public class MybatisConfig {
    @Bean
    public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(masterDataSource);
        return factoryBean.getObject();
    }
    @Bean
    public SqlSessionFactory slaveSqlSessionFactory(@Qualifier("slaveDataSource") DataSource slaveDataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(slaveDataSource);
        return factoryBean.getObject();
    }
}

2. Spring Boot+Mybatis动态数据源的配置

Spring Boot+Mybatis动态数据源的配置,主要分为以下几个步骤:

1)定义数据源:在Spring Boot的配置类中定义多个数据源,如下所示:


@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.master")
    public DataSource masterDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.slave")
    public DataSource slaveDataSource() {
        return DataSourceBuilder.create().build();
    }
}

2)定义动态数据源:在Spring Boot的配置类中定义动态数据源,如下所示:


@Configuration
public class DynamicDataSourceConfig {
    @Bean
    @Primary
    public DataSource dynamicDataSource(@Qualifier("masterDataSource") DataSource masterDataSource,
                                        @Qualifier("slaveDataSource") DataSource slaveDataSource) {
        Map targetDataSources = new HashMap();
        targetDataSources.put(DataSourceType.MASTER, masterDataSource);
        targetDataSources.put(DataSourceType.SLAVE, slaveDataSource);
        DynamicDataSource dataSource = new DynamicDataSource();
        dataSource.setTargetDataSources(targetDataSources);
        dataSource.setDefaultTargetDataSource(masterDataSource);
        return dataSource;
    }
}

3)定义SqlSessionFactory:在Spring Boot的配置类中定义SqlSessionFactory,如下所示:


@Configuration
public class MybatisConfig {
    @Bean
    public SqlSessionFactory sqlSessionFactory(@Qualifier("dynamicDataSource") DataSource dynamicDataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dynamicDataSource);
        return factoryBean.getObject();
    }
}

3. 总结

本文介绍了Spring Boot+Mybatis多数据源和动态数据源的配置,它们的配置步骤基本相同,只是在定义SqlSessionFactory时,多数据源需要定义多个SqlSessionFactory,而动态数据源只需要定义一个SqlSessionFactory即可。

以上就是为你整理的spring boot+mybatis多数据源和动态数据源配置的示例分析全部内容,希望文章能够帮你解决相关问题,更多请关注本站相关栏目的其它相关文章!

编程笔记 » springboot mybatis plus 多数据源,spring boot+mybatis多数据源和动态数据源配置的示例分析

赞同 (34) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽