springboot多數(shù)據(jù)源配置(分包方法)

yml 配置

spring:
   datasource:
      cmgr: 
        type: com.alibaba.druid.pool.DruidDataSource
        username: root
        password: 123456
        url: jdbc:sqlserver://localhost;Databasename=CMGR
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
      gwchatuser: 
        type: com.alibaba.druid.pool.DruidDataSource
        username: root
        password: 123456
        url: jdbc:sqlserver://localhost;Databasename=GWCHATUSER
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver

主數(shù)據(jù)庫(kù)代碼配置

package com.centaline.sqlserver.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

//表示這個(gè)類為一個(gè)配置類
@Configuration
// 配置mybatis的接口類放的地方
@MapperScan(basePackages = "com.centaline.sqlserver.dao.cmgr", sqlSessionFactoryRef = "cmgrSqlSessionFactory")
public class DateSourceCMGRConfig {
    @Bean(name = "cmgrDataSource")
    // 表示這個(gè)數(shù)據(jù)源是默認(rèn)數(shù)據(jù)源
    @Primary
    // 讀取application.properties中的配置參數(shù)映射成為一個(gè)對(duì)象
    // prefix表示參數(shù)的前綴
    @ConfigurationProperties(prefix = "spring.datasource.cmgr")
    public DataSource getDateSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "cmgrSqlSessionFactory")
    // 表示這個(gè)數(shù)據(jù)源是默認(rèn)數(shù)據(jù)源
    @Primary
    // @Qualifier表示查找Spring容器中名字為cmgrDataSource的對(duì)象
    public SqlSessionFactory sqlSessionFactory(@Qualifier("cmgrDataSource") DataSource datasource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(datasource);
        bean.setMapperLocations(
                // 設(shè)置mybatis的xml所在位置
                new PathMatchingResourcePatternResolver()
                        .getResources("classpath:com/centaline/sqlserver/mapper/cmgr/*Mapper.xml"));
        return bean.getObject();
    }

    @Bean("cmgrSqlSessionTemplate")
    // 表示這個(gè)數(shù)據(jù)源是默認(rèn)數(shù)據(jù)源
    @Primary
    public SqlSessionTemplate sqlsessiontemplate(@Qualifier("cmgrSqlSessionFactory") SqlSessionFactory sessionfactory) {
        return new SqlSessionTemplate(sessionfactory);
    }
}

第二數(shù)據(jù)庫(kù)代碼配置

package com.centaline.sqlserver.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

//表示這個(gè)類為一個(gè)配置類
@Configuration
// 配置mybatis的接口類放的地方
@MapperScan(basePackages = "com.centaline.sqlserver.dao.gwchatuser", sqlSessionFactoryRef = "gwchatuserSqlSessionFactory")
public class DateSourceGWCHATUSERConfig {
    @Bean(name = "gwchatuserDataSource")
    // 讀取application.properties中的配置參數(shù)映射成為一個(gè)對(duì)象
    // prefix表示參數(shù)的前綴
    @ConfigurationProperties(prefix = "spring.datasource.gwchatuser")
    public DataSource getDateSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "gwchatuserSqlSessionFactory")
    // @Qualifier表示查找Spring容器中名字為gwchatuserDataSource的對(duì)象
    public SqlSessionFactory SqlSessionFactory(@Qualifier("gwchatuserDataSource") DataSource datasource)
            throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(datasource);
        bean.setMapperLocations(
                // 設(shè)置mybatis的xml所在位置
                new PathMatchingResourcePatternResolver()
                        .getResources("classpath:com/centaline/sqlserver/mapper/gwchatuser/*Mapper.xml"));
        return bean.getObject();
    }

    @Bean("gwchatuserSqlSessionTemplate")
    public SqlSessionTemplate sqlsessiontemplate(
            @Qualifier("gwchatuserSqlSessionFactory") SqlSessionFactory sessionfactory) {
        return new SqlSessionTemplate(sessionfactory);
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容