zoukankan      html  css  js  c++  java
  • JAVA开发:SpringBoot多数据源配置

    整体项目搭建:

     数据源1:DataSource1Config

    package com.test.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    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.context.properties.ConfigurationProperties;
    import org.springframework.boot.jdbc.DataSourceBuilder;
    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;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    
    import javax.sql.DataSource;
    
    @Configuration
    @MapperScan(basePackages = "com.test.mapper.db1", sqlSessionTemplateRef = "db1SqlSessionTemplate")
    public class DataSource1Config {
    
        /**
         * 生成数据源.  @Primary 注解声明为默认数据源
         */
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.db1")
        @Primary
        public DataSource db1DataSource() {
    //        return DataSourceBuilder.create().build();
            //要返回:return new DruidDataSource() 否则不使用Druid链接池
            return new DruidDataSource();
        }
    
        @Bean(name = "db1SqlSessionFactory")
        @Primary
        public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(dataSource);
            bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/db1/*.xml"));
            return bean.getObject();
        }
    
        /**
         * 配置事务管理
         */
        @Primary
        @Bean(name = "db1TransactionManager")
        public DataSourceTransactionManager db1TransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
            return new DataSourceTransactionManager(dataSource);
        }
    
        @Bean(name = "db1SqlSessionTemplate")
        @Primary
        public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    
    }
    View Code

    数据源2: DataSource2Config

    package com.test.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    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.context.properties.ConfigurationProperties;
    import org.springframework.boot.jdbc.DataSourceBuilder;
    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;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    
    import javax.sql.DataSource;
    
    @Configuration
    @MapperScan(basePackages = "com.test.mapper.db2", sqlSessionTemplateRef = "db2SqlSessionTemplate")
    public class DataSource2Config {
    
        /**
         * 生成数据源.  @Primary 注解声明为默认数据源
         */
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.db2")
        @Primary
        public DataSource db2DataSource() {
    //        return DataSourceBuilder.create().build();
            //要返回:return new DruidDataSource() 否则不使用Druid链接池
            return new DruidDataSource();
        }
    
        @Bean(name = "db2SqlSessionFactory")
        @Primary
        public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(dataSource);
            bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/db2/*.xml"));
            return bean.getObject();
        }
    
        /**
         * 配置事务管理
         */
        @Primary
        @Bean(name = "db2TransactionManager")
        public DataSourceTransactionManager db2TransactionManager(@Qualifier("db2DataSource") DataSource dataSource) {
            return new DataSourceTransactionManager(dataSource);
        }
    
        @Bean(name = "db2SqlSessionTemplate")
        @Primary
        public SqlSessionTemplate db2SqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    
    }
    View Code

    application.properties

    ###DB1数据库####
    spring.datasource.db1.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.db1.username=root
    spring.datasource.db1.password=root
    spring.datasource.db1.url=jdbc:mysql://192.1.177:3306/db1?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    spring.datasource.db1.type=com.alibaba.druid.pool.DruidDataSource
    
    
    ######db2数据库#####
    spring.datasource.db2.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.db2.username=root
    spring.datasource.db2.password=root
    spring.datasource.db2.url=jdbc:mysql://192.1.161.177:3306/db2?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    spring.datasource.db2.type=com.alibaba.druid.pool.DruidDataSource

    maven依赖:

     <dependency>
              <groupId>org.mybatis.spring.boot</groupId>
              <artifactId>mybatis-spring-boot-starter</artifactId>
              <version>2.1.2</version>
          </dependency>
          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid-spring-boot-starter</artifactId>
              <version>1.1.16</version>
          </dependency>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
  • 相关阅读:
    整理Eclipse常用快捷键
    前端网站资源推荐
    Node.js 官方示例中的 ECMAScript 2015
    D3.js 入门系列 — 选择元素和绑定数据
    D3.js 入门系列
    PlaceHolder的两种实现方式
    Vue.js 是什么
    Webstorm官方最新版本for Mac版本 不用注册码/破坏原文件
    vue.js 学习 仅自己加强记忆
    jQuery 动画animate,显示隐藏,淡入淡出,下拉切换,过渡效果
  • 原文地址:https://www.cnblogs.com/weigy/p/12857531.html
Copyright © 2011-2022 走看看