• 多数据源配置


    一、SpringBoot使用MyBatisPlus配置

    1、baomidou动态数据源(@DS)

    思路:

      1、引入依赖

           2、修改Application.yml,配置多个数据源信息

      3、使用@DS切换数据源

    1.1、引入依赖

    1. com.baomidou
    2. dynamic-datasource-spring-boot-starter
    3. 3.2.1

    1.2、配置文件

    1. spring:
    2. # 数据源配置项
    3. autoconfigure:
    4. exclude:
    5. - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
    6. datasource:
    7. druid: # Druid 【监控】相关的全局配置
    8. web-stat-filter:
    9. enabled: true
    10. stat-view-servlet:
    11. enabled: true
    12. allow: # 设置白名单,不填则允许所有访问
    13. url-pattern: /druid/*
    14. login-username: # 控制台管理用户名和密码
    15. login-password:
    16. filter:
    17. stat:
    18. enabled: true
    19. log-slow-sql: true # 慢 SQL 记录
    20. slow-sql-millis: 100
    21. merge-sql: true
    22. wall:
    23. config:
    24. multi-statement-allow: true
    25. dynamic: # 多数据源配置
    26. druid: # Druid 【连接池】相关的全局配置
    27. initial-size: 5 # 初始连接数
    28. min-idle: 10 # 最小连接池数量
    29. max-active: 20 # 最大连接池数量
    30. max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
    31. time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
    32. min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
    33. max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
    34. # validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
    35. test-while-idle: true
    36. test-on-borrow: false
    37. test-on-return: false
    38. # 设置默认的数据源或者数据源组,默认值即为master
    39. primary: master
    40. datasource:
    41. # 主数据源
    42. master:
    43. name: lc_mono_camas
    44. url: jdbc:mysql://10.1.102.24:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
    45. driver-class-name: com.mysql.jdbc.Driver
    46. username: lc_mono_camas
    47. password: Lc_mono_camas@_1706
    48. cmds_finger:
    49. name: cmds_finger
    50. # url: jdbc:sqlite:lib/tidefinger/cms_finger.db?date_string_format=yyyy-MM-dd HH:mm:ss
    51. url: jdbc:sqlite:D:/lcProject/lc-mono-camas-java/lc-camas/lib/cms_finger.db?date_string_format=yyyy-MM-dd HH:mm:ss
    52. driver-class-name: org.sqlite.JDBC
    53. username:
    54. password:

    1.3、使用@DS切换数据源

    1. @DS("cmds_finger")
    2. public List selectAll(JSONObject reqJson) {
    3. return tideTideMapper.selectAll(reqJson);
    4. }

    2、@DS注解说明

    @DS的用法

    @DS可以注解在方法上、类上、接口、枚举,同时存在就近原则 方法上注解优先于类上注解

    常见问题:涉及需要切换数据源时,

          1.不能使用事务,否则数据源不会切换,使用的还是是第一次加载的数据源 。

      删除操作多数据源的方法或者类、接口上的注解 @Transactional() 即可。

          2.第一次加载的数据源之后,第二次(第三次...)操作其它数据源,如果数据源不存在,使用的还是第一次加载的数据源

          3.数据源名称最好不要包含下滑线,下滑线的数据源切换不了

    二、Springboot环境中多个DataSource基于自定义注解进行切换使用过程

    https://www.jianshu.com/p/e8dae96d4871

  • 相关阅读:
    基于AVR单片机的视觉追踪算法研究与实现
    深入浅出排序算法之直接插入排序(拓展:折半插入排序)
    前端程序员是怎么做物联网开发的
    HTML这一篇就够啦~
    零基础教程:Yolov5模型改进-添加13种注意力机制
    增加软件投入的重要性:提升自动化程度与用户界面设计的价值
    Leetcode 1541. Minimum Insertions to Balance a Parentheses String (括号问题好题)
    LeetCo
    leetcode:189. 轮转数组(python3解法)
    Img-Diff: 多模态大型语言模型的对比数据合成
  • 原文地址:https://blog.csdn.net/inexaustible/article/details/126128379