前言
由于项目中需要使用到多个数据库进行数据验证,所以一开始在网上找了很多资料,但是大部分都是有关SpringBoot + JPA的多数据源整合。之后找到了微笑大神的一篇blog,在这里感谢纯洁的微笑大神,记录下个人实战过程的注意点以及相关配置。
预先说明
- 在整合多数据源时,两个或两个以上,一定得定好一个主数据源,不然会报错,比如:事物方面会报错。
- @Primary:SpringBoot自动装配时,当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者。
- application.properties:在配置数据源url时,单个数据源直接spring.datasource.url即可;而在多数据源配置时,请使用spring.datasource.first.jdbc-url,注意:这里的first只是用来区分数据源,关键是jdbc-url,如果直接写spring.datasource.first.url,会报错:jdbcUrl is required with driverClassName。
- Demo基于SpringBoot 2.0.2.RELEASE
- Demo中使用的都是MySQL数据库,在实战中其他数据库也是可以的。比如:PostgreSQL,MySQL+PostgreSQL混合…
具体代码
1. 项目结构
2. 相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>