Spring Boot 多数据源配置

0
183

前言

在微服务体系搭建中,难免会有需要使用多个数据源的情况。今天米饭屋就给大家介绍一下在Spring Boot 1.xx环境中(2.xx环境中有些区别,后续再介绍)如何配置多个数据源。
因为篇幅的原因(其实就是懒,哈哈),本文使用MySQL和MsSQL两种数据源来示例,其他种类的数据源大家举一反三就行了。

pom.xml 配置

核心配置有三个:jpa,mysql,mssql。

application.yml 配置

Spring Boot 配置

连接属性配置

mysql数据源配置

mssql数据源配置

自定义方言配置(这一步是可选的)

至此,多数据源的配置已经完成。如果还有其他的数据源配置,可以参数上面的示例自行添加。关于自定义方言的配置,不是必须的,这个是在某些时候数据库里的字段定义了一些不常见的类型,jpa提示“No Dialect mapping for JDBC type: -9”这样的错误时,可以自己注入对这些类型的映射关系。
EnableJpaRepositories中的basePackages,这里如果在工程目录中有多个包需要包含,可以直接添加多个路径。如:basePackages = {“com.example.mulitdatasource.repositories.mssql”,”com.example.mulitdatasource.repositories.mssql1″,…},这样。同理LocalContainerEntityManagerFactoryBean中的packages也是相同的操作。
配置完成后,接下来向大家介绍一下如何使用。

实体类

用户实体

这里我将用户实体配置在MySQL中

角色实体

这里我将角色实体配置在MsSQL中

数据库操作接口

用户操作接口

角色操作接口

复杂操作接口

我创建了一个用于复杂查询操作的接口。
某些时候原生JpaRepository操作还是过于简单,在实现join,复杂分页之类的操作,虽然能实现,但我个人还是更喜欢直接面向存储过程

使用示例

写在最后

现在我已经为大家展示了Spring Boot中关于多数据源的配置以及使用示例,并附带了spring boot中存储过程调用的一种方法。因为篇幅和精力的问题,这里我并不是针对新手的一步一步教程及原理解析,本文的目的主两有两个,一个是方便我自己记录一下思路,另一个是在配置的过程中为大家介绍一些关键点。如果大家确实觉得有必要将细节一步一步解释清除,可以给我留言讨论。

留下一个答复

请输入你的评论!
请在这里输入你的名字

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据