mybatis 多数据源 TDataSource required a single bean, but 2 were found

情况说明:

  1. 项目中本来就有一个数据源了,运行的好好的
  2. 后来又合并了另一个项目,另一个项目也配置了数据源。

于是出现了如下错误:

  1. mybatis 多数据源 TDataSource required a single bean, but 2 were found

解决方法:

复制代码
禁用自动配置:exclude = DataSourceAutoConfiguration.class
  1. 重写代码配置DataSource 和mapperConfig,已经事务管理器
java 复制代码
/**
     * 创建动态数据源的SqlSessionFactory,传入的是动态数据源
     * @Primary这个注解很重要,如果项目中存在多个SqlSessionFactory,这个注解一定要加上
     */
    @Primary
    @Bean("sqlSessionFactory2")
    public SqlSessionFactory sqlSessionFactoryBean(DynamicDataSource dynamicDataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dynamicDataSource);
        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
        configuration.setMapUnderscoreToCamelCase(true);
        configuration.setDefaultFetchSize(100);
        configuration.setDefaultStatementTimeout(30);
        sqlSessionFactoryBean.setConfiguration(configuration);
        return sqlSessionFactoryBean.getObject();
    }

ok!

相关推荐
我不是懒洋洋几秒前
【C++】内存管理与模板(C++内存管理方式、new和delete的实现原理、malloc/free和new/delete的区别、函数模板、类模板)
c语言·开发语言·c++·青少年编程·visual studio
雪的季节1 分钟前
Qt多窗口架构设计需求简介
开发语言·qt
李白的天不白1 分钟前
针对你遇到的 Client.Timeout exceeded 问题,我判断是防火墙拦截了 HTTPS 流量
java
linweidong5 分钟前
Java 后端开发面试 50 个高频易混淆知识点详解
java·spring boot·spring·spring cloud·面试·mybatis·spring事务
码语智行6 分钟前
应用启动和关闭监听器功能分析
java·spring boot
Resky08186 分钟前
什么是 Spring IOC:倒过来让容器帮你 new,而不是你到处 new
java·spring
AutumnWind04206 分钟前
【JDK动态代理源码梳理】
java·后端·spring
韦胖漫谈IT7 分钟前
面向对象 vs 函数式背后的思维差异
开发语言
Xin_ye1008610 分钟前
C# 零基础到精通教程 - WPF 深度专题:3D 图形与视觉增强
开发语言·c#·wpf
暗夜猎手-大魔王15 分钟前
转载--Hermes Agent 10 | 7 层安全防线:从用户授权到输入净化
java·数据库·安全