• mybatis plus + druid多数据源(使用dynamic实现)


    参考开源项目dynamic: https://github.com/baomidou/dynamic-datasource-spring-boot-starter

    引入pom:

            <!-- 动态数据源 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                <version>2.5.4</version>
            </dependency>

    配置文件yml中:

    spring:
      autoconfigure:
        #自动化配置 例外处理
        exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        #多数据源配置
        dynamic:
          primary: db1
          datasource:
            # 数据库1
            db1:
              driver-class-name: com.mysql.cj.jdbc.Driver
              url: jdbc:mysql://xxxx:3306/xxx?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
              username: xxx
              password: xxxx
            # 数据库2
            db2:
              driver-class-name: com.mysql.cj.jdbc.Driver
              url: jdbc:mysql://xxxx:3306/xxx?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
              username: xxx
              password: xxxx
          #dynamic - 公共配置
          druid:
            initialSize: 5
            minIdle: 5
            maxActive: 30
            maxWait: 60000
            timeBetweenEvictionRunsMillis: 60000
            minEvictableIdleTimeMillis: 300000
            validationQuery: SELECT 'x'
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            poolPreparedStatements: true
            maxPoolPreparedStatementPerConnectionSize: 20
            filters: stat,wall,slf4j,config
            useGlobalDataSourceStat: true
            stat:
              log-slow-sql: true
              merge-sql: true
              slow-sql-millis: 10000

    用法:在相应service类或方法上添加DS注解,如:

    package com.tuijie.loanapi.service.impl;
    
    import com.baomidou.dynamic.datasource.annotation.DS;
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import com.tuijie.loanapi.mapper.TestUserMapper;
    import com.tuijie.loanapi.model.mysql.TestUser;
    import com.tuijie.loanapi.service.TestUserService;
    import org.springframework.stereotype.Service;
    
    /**
     * TestUserServiceImpl
     * 测试ServiceImpl
     * @version :
     */
    @Service
    @DS("db2")
    public class TestUserServiceImpl extends ServiceImpl<TestUserMapper, TestUser> implements TestUserService {
    }
  • 相关阅读:
    递归与分治4
    递归与分治3
    递归与分治2
    递归与分治1
    枚举与递推3
    枚举与递推2
    求编译器中数的最值(c++)
    移动小球链表实现
    阶乘的精确值
    while((c = getchar()) != EOF)(键盘输入问题)
  • 原文地址:https://www.cnblogs.com/007sx/p/13450637.html
Copyright © 2020-2023  润新知