项目中使用多个数据源在以往工作中比较常见,微服务架构中不建议一个项目使用多个数据源。在微服务架构下,一个微服务拥有自己独立的一个数据库,如果此微服务要使用其他数据库的数据,需要调用对应库的微服务接口来调用,而不是在一个项目中连接使用多个数据库,这样微服务更独立、更容易水平扩展。
虽然在微服务架构下,不提倡一个项目拥有多个数据源,但在 Spring Boot 体系中,项目实现多数据源调用却是一件很容易的事情,本节课将介绍 Spring Data JPA 多数据源的使用。
Spring Data JPA 使用多数据源的整体思路是,配置不同的数据源,在启动时分别加载多个数据源配置,并且注入到不同的 repository 中。这样不同的 repository 包就有不同的数据源,使用时注入对应包下的 repository,就会使用对应数据源的操作。
对照前两课的示例项目,本课内容将会对项目结构有所调整,如下:
其中:
- config 启动时加载、配置多数据源;
- model 存放数据操作的实体类;
- repository 目录下有两个包路径 test1 和 test2 ,分别代表两个不同数据源下的仓库,这两个包下的 repository 可以相同也可以不同。
下面演示一下项目。
多数据源的支持
配置 Spring Data JPA 对多数据源的使用,一般分为以下几步:
- 创建数据库 test1 和 test2
来源:oschina
链接:https://my.oschina.net/u/4303276/blog/4635091