前言
业务中,有一个需求,需要定时将一个库的部分业务表的数据同步到另一个库中,由于在现有的项目中进行改造比较麻烦,因此索性使用springboot和mybatisplus完成一个多数据源的环境搭建
简单说明一下,使用mybatis也是可以的,但项目中有技术要求,同时使用过mybatisplus之后,发现功能更加强大,而且使用很灵活,因此就选择了这个组件
搭建流程
开发步骤:
- 新建springboot项目。
- 导入依赖 --> devtools,lombok,web,thymeleaf,mysql,aop,mybatisplus,druid,swagger。
- maven多环境配置。
- 编写application.yml --> 项目端口,项目路径名,mybatisplus配置,mysql多数据源配置。
- 新建DataSourceContextHolder 用于设置,获取,清空 当前线程内的数据源变量。
- 新建 MultipleDataSource 实现 AbstractRoutingDataSource 类。重写determineCurrentLookupKey(),通过DataSourceContextHolder 获取数据源变量,用于当作lookupKey取出指定的数据源。
- 新建DataSourceEnum 用于存放数据源名称。
- 新建注解 DataSource,用于aop类中当作切入点来选择数据源。
- 编写aop类 --> DataSourceAspect.java