相关文章推荐
爽快的大蒜  ·  12. Data access with JDBC·  1 月前    · 
考研的绿豆  ·  Java如何使用Spring ...·  5 月前    · 
飞翔的遥控器  ·  Day 11 - Spring Boot ...·  8 月前    · 
宽容的楼梯  ·  Spring JDBC-使用Spring ...·  9 月前    · 
英俊的大熊猫  ·  Spring ...·  11 月前    · 
光明磊落的卤蛋  ·  event 关键字 - C# ...·  2 月前    · 
讲道义的米饭  ·  Vue ...·  1 年前    · 
踏实的柳树  ·  BETWEEN ...·  1 年前    · 
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在 application.properties 文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别介绍两种多数据源的配置方式。

多数据源配置

创建一个Spring配置类,定义两个DataSource用来读取 application.properties 中的不同配置。如下例子中,主数据源配置为 spring.datasource.primary 开头的配置,第二数据源配置为 spring.datasource.secondary 开头的配置。

对应的 application.properties 配置如下:

JdbcTemplate支持

对JdbcTemplate的支持比较简单,只需要为其注入对应的datasource即可,如下例子,在创建JdbcTemplate的时候分别注入名为 primaryDataSource secondaryDataSource 的数据源来区分不同的JdbcTemplate。

接下来通过测试用例来演示如何使用这两个针对不同数据源的JdbcTemplate。

代码示例

可以查看下面仓库中的 chapter3-2-3 目录:

如果您觉得本文不错,欢迎 Star 支持,您的关注是我坚持的动力!

Spring-data-jpa支持

对于数据源的配置可以沿用上例中 DataSourceConfig 的实现。

新增对第一数据源的JPA配置,注意两处注释的地方,用于指定数据源对应的 Entity 实体和 Repository 定义位置,用 @Primary 区分主数据源。

新增对第二数据源的JPA配置,内容与第一数据源类似,具体如下:

完成了以上配置之后,主数据源的实体和数据访问对象位于: com.didispace.domain.p ,次数据源的实体和数据访问接口位于: com.didispace.domain.s

分别在这两个package下创建各自的实体和数据访问接口


接下来通过测试用例来验证使用这两个针对不同数据源的配置进行数据操作。

代码示例

可以查看下面仓库中的 chapter3-2-4 目录:


如果更新不成功会报下面的错误(此错误是自定义的): The data you want to update has been updated by another user. Please reopen and try again! 一、主要按下面的流程检查: 1、检查数据库的段alastupdatetime定义 2、检查.xml的alastupdatetime 3、要更新数据的主键是否在同一个updateByBatch中的List中重复出现
ElasticSearch全文搜索引擎 -Spring Boot操作ES(SpringData概述、Spring Data Elasticsearch、基本操作、ElasticSearch操作文档)
ElasticSearch全文搜索引擎 -Spring Boot操作ES(SpringData概述、Spring Data Elasticsearch、基本操作、ElasticSearch操作文档)
鱼找水需要时间