美文网首页javaWeb学习
springboot 多数据源(分包方式)

springboot 多数据源(分包方式)

作者: 寂静的春天1988 | 来源:发表于2019-08-03 17:08 被阅读2次

    参考链接
    https://blog.csdn.net/tuesdayma/article/details/81081666

    实现思路配置多个数据源,然后通过扫描不同的包路径来实现不同的包下的mapper使用不同的数据源

    
    package com.ganlong.config;
    
    import javax.sql.DataSource;
    
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Primary;
    
    import com.zaxxer.hikari.HikariDataSource;
    
    @Configuration
    @MapperScan(value= {"com.ganlong.mapper.test1"},sqlSessionFactoryRef="springbootDemoSqlSessionFactory")
    public class SpringbootDemoConfig {
    
        @Bean
        @Primary
        public DataSource springbootDemoDataSource() {
            DataSourceProperties dataSourceProperties=new DataSourceProperties();
            dataSourceProperties.setUsername("root");
            dataSourceProperties.setPassword("123456");
            dataSourceProperties.setUrl("jdbc:mysql://192.168.1.131/springbootDemo?characterEncoding=utf-8&useSSL=false");
            return dataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
        }
    
        @Bean
        @Primary
        public SqlSessionFactory springbootDemoSqlSessionFactory() throws Exception {
            SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean();
            sqlSessionFactoryBean.setDataSource(springbootDemoDataSource());
            return sqlSessionFactoryBean.getObject();
        }
    
    }
    
    package com.ganlong.config;
    
    import javax.sql.DataSource;
    
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import com.zaxxer.hikari.HikariDataSource;
    
    @Configuration
    @MapperScan(value= {"com.ganlong.mapper.test2"},sqlSessionFactoryRef="springDataJpaSqlSessionFactory")
    public class SpringDataJpaConfig {
        
        @Bean
        public DataSource springDataJpaDataSource() {
            DataSourceProperties dataSourceProperties=new DataSourceProperties();
            dataSourceProperties.setUsername("root");
            dataSourceProperties.setPassword("123456");
            dataSourceProperties.setUrl("jdbc:mysql://192.168.1.131/spring_data_jpa?characterEncoding=utf-8&useSSL=false");
            return dataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
        }
        
        @Bean
        public SqlSessionFactory springDataJpaSqlSessionFactory() throws Exception {
            SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean();
            sqlSessionFactoryBean.setDataSource(springDataJpaDataSource());
            return sqlSessionFactoryBean.getObject();
        }
    }
    

    相关文章

      网友评论

        本文标题:springboot 多数据源(分包方式)

        本文链接:https://www.haomeiwen.com/subject/ytnjdctx.html