【MyBatis-Plus 动态数据源的默认行为】
MyBatis-Plus 动态数据源的默认行为
- MyBatis-Plus 动态数据源的默认行为
- 可能的原因分析:
- 详细配置信息:
- 结论:
MyBatis-Plus 动态数据源的默认行为
在代码中切换数据源到qixiang数据库,但是在yml配置信息中,注释掉qixiang数据库的配置信息,发现默认调用了配置的master数据库。
代码仍可以正常进行,并且查询了master数据库中的数据。
可能的原因分析:
- 默认的主数据源行为
虽然您的配置中没有显式设置 primary: master,但动态数据源组件可能会:
将第一个定义的数据源(master)作为默认数据源
当找不到指定数据源时,使用第一个数据源作为回退
- 版本特定的默认行为
不同版本的 MyBatis-Plus 动态数据源可能有不同的默认 strict 设置。
建议添加明确配置:
为了确保行为可预测,建议添加明确的配置:
详细配置信息:
spring:datasource:dynamic:primary: master # 明确指定主数据源strict: false # 明确设置宽松模式druid:# ... 现有的druid配置datasource:master:# ... 现有配置yushuiqing:# ... 现有配置# qixiang: # 注释掉的数据源
结论:
您的配置能够回退到 master 数据库的原因可能是:
MyBatis-Plus 动态数据源组件的默认行为:在某些版本中,当 strict 未明确设置时,默认可能是 false
顺序依赖:master 作为第一个定义的数据源被用作默认回退
推荐做法:还是建议添加明确的 primary 和 strict 配置,这样代码的行为会更加明确和可维护。