本篇文章要讨论的一个问题点, 给Spring和Mybatis设置不同的数据库数据源会怎样?
注意. 正常情况下一定要给Spring和Mybatis设置相同的数据库数据源...., 描述上面AppConfig.java代码的结构
据库数据源分别设置到SqlSessionFactory和事务管理器....Spring会将Service的代理对象放入容器中, 当调用代理对象的方法时, 首先会调用到事务拦截器TransactionInterceptor中,这个事务拦截器会拿到容器中的事务管理器, 事务管理器会根据设置的数据源...如上图, 由于文章开头, 在配置事务管理器和SqlSessionFactory时,分别设置了不同的数据源, 最终就导致, 事务管理器开启事务的时候, 使用的数据源A创建的一个数据库连接....而Mybatis在进行实际操作数据库的时候, 使用的数据源B创建的一个数据库连接. 造成了开启事务和进行实际数据库操作的连接不是同一个连接.