各位在用 mybatis 的时候,如果碰到多数据源的时候是不是使用 aop 的方式做动态多数据源呢? 如果是的话一般切入点是什么?我是在网上看了一些,主要是两部分。有的是通过 MapperScan 分包。为每个 DataSource 都去做单独的 SqlSessionFactory 以及 TransactionManager 等。 还有一种就是从 AbstractRoutingDataSource 上下功夫,大部分都起名字叫 DynamicDataSource 这种。然后将每个数据源放入 map,set 到这个 bean 里面。然后定义 SQLSessionFactory 将这个类 set 进去。其中看着比较舒服的是做个注解。然后切入点直接走注解。但是我写下来之后,增删改查的确是按照预期分开了。但是由于切入点是在 dao 层。事务的话 @Transactional 一般都会写在 service 层。 这个时候就会发生设置数据源发生在设置事务之后然后就凉了(这个结论正确性不敢打保票,看了一些文章暂下的结论)。特来取经。。问下多数据源都是怎么弄的。 其中还看到一个 AtomikosDataSource 还没有细琢磨。暂时是默认的 HikariDataSource。 springboot 2