【MyBatis-Plus 动态数据源的默认行为】

MyBatis-Plus 动态数据源的默认行为

MyBatis-Plus 动态数据源的默认行为

在代码中切换数据源到qixiang数据库,但是在yml配置信息中,注释掉qixiang数据库的配置信息,发现默认调用了配置的master数据库。


代码仍可以正常进行,并且查询了master数据库中的数据。

可能的原因分析:

  1. 默认的主数据源行为
    虽然您的配置中没有显式设置 primary: master,但动态数据源组件可能会:

将第一个定义的数据源(master)作为默认数据源

当找不到指定数据源时,使用第一个数据源作为回退

  1. 版本特定的默认行为
    不同版本的 MyBatis-Plus 动态数据源可能有不同的默认 strict 设置。

建议添加明确配置:

为了确保行为可预测,建议添加明确的配置:

详细配置信息:

bash 复制代码
spring:
  datasource:
    dynamic:
      primary: master # 明确指定主数据源
      strict: false   # 明确设置宽松模式
      druid:
        # ... 现有的druid配置
      datasource:
        master:
          # ... 现有配置
        yushuiqing:
          # ... 现有配置
        # qixiang:  # 注释掉的数据源

结论:

您的配置能够回退到 master 数据库的原因可能是:

MyBatis-Plus 动态数据源组件的默认行为:在某些版本中,当 strict 未明确设置时,默认可能是 false

顺序依赖:master 作为第一个定义的数据源被用作默认回退

推荐做法:还是建议添加明确的 primary 和 strict 配置,这样代码的行为会更加明确和可维护。

相关推荐
逝水无殇5 分钟前
C# 枚举(Enum)详解
开发语言·后端·c#
nianniannnn17 分钟前
c++复习自存--标准模板库STL
开发语言·c++·windows
努力努力再努力wz26 分钟前
【高性能网络库与HTTP Server系列】:基于主从 Reactor 模型实现高性能 C++ 网络库与 HTTP Server
开发语言·网络·数据结构·数据库·c++·网络协议·http
什巳34 分钟前
JAVA练习275-乘积最大子数组
java·开发语言·数据结构·算法
lang2015092838 分钟前
Apache POI Word(docx) 实战教程:从入门到精通表格合并、图片插入与文档合并
java·开发语言·word
小牛不牛的程序员39 分钟前
利用Claude Code构建自动化需求挖掘工具:从原理到实践
java·算法·自动化
wear工程师42 分钟前
腾讯天美一面:从 HashMap 到 Spring 事务,面试官这套连环问到底在考什么
java·面试
鱼毓屿御1 小时前
Python 装饰器与函数调用机制(复习笔记 · 2026-07-07)
开发语言·python
浩瀚地学1 小时前
【Java基础复习】IO流(二)
java·开发语言·经验分享·笔记·学习
hdsoft_huge1 小时前
SpringBoot系列06:RESTful接口开发,请求参数接收、全局跨域CORS完整配置
java·spring boot