美文网首页
SpringBoot使用dynamic-datasource-s

SpringBoot使用dynamic-datasource-s

作者: 原始人y | 来源:发表于2021-03-11 15:03 被阅读0次

    1、pom.xml文件添加依赖

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

    2、yml 文件修改如下:

    
    server:
      port: 3012
      tomcat:
        max-swallow-size: -1
      servlet:
        context-path: /jeecg-boot
      compression:
        enabled: true
        min-response-size: 1024
        mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*
    
    management:
      endpoints:
        web:
          exposure:
            include: metrics,httptrace
    
    spring:
      servlet:
        multipart:
          max-file-size: 10MB
          max-request-size: 10MB
      mail:
        host: smtp.163.com
        username: jeecgos@163.com
        password: ??
        properties:
          mail:
            smtp:
              auth: true
              starttls:
                enable: true
                required: true
      ## quartz定时任务,采用数据库方式
      quartz:
        job-store-type: jdbc
      #json 时间戳统一转换
      jackson:
        date-format:   yyyy-MM-dd HH:mm:ss
        time-zone:   GMT+8
      aop:
        proxy-target-class: true
      #配置freemarker
      freemarker:
        # 设置模板后缀名
        suffix: .ftl
        # 设置文档类型
        content-type: text/html
        # 设置页面编码格式
        charset: UTF-8
        # 设置页面缓存
        cache: false
        prefer-file-system-access: false
        # 设置ftl文件路径
        template-loader-path:
          - classpath:/templates
      # 设置静态文件路径,js,css等
      mvc:
        static-path-pattern: /**
      resource:
        static-locations: classpath:/static/,classpath:/public/
      autoconfigure:
        exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
      datasource:
        druid:
          stat-view-servlet:
            enabled: true
            loginUsername: admin
            loginPassword: 123456
            allow:
          web-stat-filter:
            enabled: true
        dynamic:
          druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
            # 连接池的配置信息
            # 初始化大小,最小,最大
            initial-size: 5
            min-idle: 5
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            #        validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            # 打开PSCache,并且指定每个连接上PSCache的大小
            poolPreparedStatements: true
            maxPoolPreparedStatementPerConnectionSize: 20
            # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
            filters: stat,wall,slf4j
            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
            connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
          datasource:
            master:
              url: jdbc:mysql://localhost:3306/xy?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
              username: root
              password: yudeshuai
              driver-class-name: com.mysql.jdbc.Driver
            #           多数据源配置
            multi-datasource1:
              url: jdbc:mysql://localhost:3306/md101?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
              username: root
              password: yudeshuai
              driver-class-name: com.mysql.jdbc.Driver
      #redis 配置
      redis:
        database: 1
        host: 192.168.0.200
        lettuce:
          pool:
            max-active: 8   #最大连接数据库连接数,设 0 为没有限制
            max-idle: 8     #最大等待连接中的数量,设 0 为没有限制
            max-wait: -1ms  #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
            min-idle: 0     #最小等待连接中的数量,设 0 为没有限制
          shutdown-timeout: 100ms
        #    password: 1llF68uT
        port: 6379
    #mybatis plus 设置
    mybatis-plus:
      mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml
      global-config:
        # 关闭MP3.0自带的banner
        banner: false
        db-config:
          #主键类型  0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
          id-type: 4
          # 默认数据库表下划线命名
          table-underline: true
      configuration:
        # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
        #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        # 返回类型为Map,显示null对应的字段
        call-setters-on-nulls: true
    #jeecg专用配置
    jeecg :
      # 本地:local\Minio:minio\阿里云:alioss
      uploadType: local
      path :
        #文件上传根目录 设置
        upload: D://opt//upFiles
        #webapp文件路径
        webapp: D://opt//webapp
      #短信秘钥
      sms:
        accessKeyId: ??
        accessKeySecret: ??
      shiro:
        excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**
      #阿里云oss存储配置
      oss:
        endpoint: oss-cn-beijing.aliyuncs.com
        accessKey: WegDpuKzOuPK6D3N
        secretKey: ??
        bucketName: jeecgos
        staticDomain: ??
      # ElasticSearch 设置
      elasticsearch:
        cluster-name: docker-cluster
        cluster-nodes: 127.0.0.1:9200
      # 表单设计器配置
      desform:
        # 主题颜色(仅支持 16进制颜色代码)
        theme-color: "#1890ff"
      # 在线预览文件服务器地址配置
      file-view-domain: http://fileview.jeecg.com
      # minio文件上传
      minio:
        minio_url: http://minio.jeecg.com
        minio_name: ??
        minio_pass: ??
        bucketName: ??
    #Mybatis输出sql日志
    logging:
      level:
        org.jeecg.modules.system.mapper : debug
    #分页配置
    pagehelper:
      reasonable: false
      support-methods-arguments: true
      params: count=countSql
      row-bounds-with-count: true
      helper-dialect: mysql
      pageSizeZero : true
    #cas单点登录
    cas:
      prefixUrl: http://cas.example.org:8443/cas
    
    jpushTest:
      apnsProduction: false
    

    3、切换数据源
    service层里面在想要切换数据源的方法上加上@DS注解就行了,也可以加在整个service层上,方法上的注解优先于类上注解

    
    
        @DS("数据源名")
        public void method05() {
            // 查询订单
            OrderDO order = orderMapper.selectById(1);
            System.out.println(order);
            // 查询用户
            self().method052();
        }
    
    

    相关文章

      网友评论

          本文标题:SpringBoot使用dynamic-datasource-s

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