mybatis多数据源动态切换的完整步骤
笔者主要从事c#开发,近期因为项目需要,搭建了一套spring-cloud微服务框架,集成了eureka服务注册中心、在搭建过程集成mybatis的时候,考虑到单一数据源无法满足实际业务需要,故结合c#的开发经验,进行多数据源动态集成。mybatis的多数据源可以采用两种方式进行,第一种是分包方式实现,这种方式灵活性不高,而且较为繁琐,故不做过多介绍。另一种方式是采用AOP的思想,进行注解动态切换,参考网上教程,核心思想是依靠 继承AbstractRoutingDataSource,重写determineCurrentLookupKey()方法,在该方法中使用DatabaseContextHolder获取当前线程的dataSource。而csgDataSource()方法,添加了@Bean注解,作用是让mybatis的SqlSessionFactory,能够使用咱们维护的数据源。编写MyBatisConfig类,该类主要作用是 配置好mybatis的数据源。可以看到,这里选择的是我们定义好的csgDataSource,其作用也是如此。
用户评论