SpringBoot配置多数据源( 四 )

便于简化操作和演示,此处仅仅是配置了一个方法 。mapper2包内的BookMapper2.java文件和BookMapper2.xml文件中的代码与上述非常相似,这里就不粘贴了,仅仅粘贴项目的目录结构:

SpringBoot配置多数据源

文章插图
 
第八步,配置pom.xml文件,这一步很重要 。在Maven工程中,XML配置文件建议写在resources目录下,但是很明显上述的BookMapper.xml文件写在了mapper包内,且不在resources目录下,此时运行项目肯定会抛出mapper文件找不到的异常,因为Maven运行时会忽略包内的xml文件,因此需要在pom.xml文件中重新指明资源文件的位置:
<build><!--使用mybatis时需要手动指明xml的位置--><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory></resource></resources></build>第九步,创建Controller层 。在controller包内新建BookController类,这里同样没有service层,因此是直接将Mapper注入到Controller中 。里面的代码为:
@RestControllerpublic class BookController {@AutowiredBookMapper bookMapper;@AutowiredBookMapper2 bookMapper2;@GetMapping("/test")public void test(){List<Book> bookList1 = bookMapper.getAllBooks();List<Book> bookList2 = bookMapper2.getAllBooks();System.out.println("【bookList1】>>>>>>"+bookList1);System.out.println("【bookList2】>>>>>>"+bookList2);}}第十步,运行项目 。运行项目,在浏览器地址栏中输入http://localhost:8080/test,然后查看控制台的输出信息为:
【bookList1】>>>>>>[Book{id=1, name='西游记', author='吴承恩'}]【bookList2】>>>>>>[Book{id=1, name='红楼梦', author='曹雪芹'}]对比一下数据库中的数据:
SpringBoot配置多数据源

文章插图
 
可以看到数据已经成功取出来了,这表明Mybatis配置多数据源成功 。
Spring Data JPA多数据源JPA和Mybatis配置多数据源非常类似,只是JPA配置时主要提供LocalContainerEntityManagerFactoryBean以及事务管理器,具体的配置如下:
第一步,创建数据库,不创建表 。使用下面的SQL语句来手动创建两个数据库:
drop database if exists jpaone;create database jpaone;drop database if exists jpatwo;create database jpatwo;执行该SQL语句后,可以看出数据库中已经有这两个数据库了 。
第二步,创建SpringBoot项目并添加依赖 。使用spring Initializr构建工具构建一个SpringBoot的Web应用,名称为jpamorespringboot,然后在pom.xml文件中添加如下依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--添加数据库驱动依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--添加数据库连接池依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><!--添加Spring Data JPA依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!--添加lombok依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>请注意这里添加的数据库连接池依赖是druid-spring-boot-starter 。druid-spring-boot-starter可以帮助开发者在SpringBoot项目中轻松集成Druid数据库连接池和监控 。
第三步,配置数据库连接 。在application.properties配置文件中配置多个数据源及JPA的配置信息:
# 数据源1spring.datasource.one.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.one.url=jdbc:mysql://127.0.0.1:3306/jpaone?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCspring.datasource.one.username=rootspring.datasource.one.password=1234# 数据源2spring.datasource.two.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.two.url=jdbc:mysql://127.0.0.1:3306/jpatwo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCspring.datasource.two.username=rootspring.datasource.two.password=1234# JPA相关配置spring.jpa.properties.hibernate.dialect.MySQL57InnoDBDialectspring.jpa.properties.database=mysqlspring.jpa.properties.hibernate.hbm2ddl.auto=updatespring.jpa.properties.show-sql=true


推荐阅读