Spring Boot系列之八 多数据源配置整体介绍
2017-04-12 18:25
555 查看
简介
前面两章在介绍Spring Boot整合MyBatis的时候简单的看了一下Spring Boot如何去配置单一的数据源.并没有详细的单独去看数据源的配置.本文就简要介绍下在Spring Boot中对内置内存数据库H2,多数据源等的配置.
由于本文档的代码基本都是基于MyBatis搭建,所以关于Spring-Data-JPA的内容并不能展示出来,Spring Boot中对于Repository/Dao的设计并不能完美的体现出来,不过,各个持久层框架自有它自己的好处,无所谓谁坏谁差,还是要看我们具体怎么去应用。
对内置内存数据库的支持
基于Spring Boot的自动化配置,其实我们也仅仅需要在pom.xml文件中引入我们想使用的内置内存数据库的jar依赖即可。Spring Boot会自动扫描classpath下是否有某个jar包,如果有,就加载默认配置。pom.xml引入依赖
基于mybatis的配置:
使用内置内存数据库需要引入`spring-jdbc`,其在`mybatis-spring-boot-starter`已经包含。
实际使用过程中,因为内置的内存数据库并不能保留表结构,所以,如果使用JPA就需要在配置文件中将ddl语句设置为`spring.jpa.hibernate.ddl-auto=create`.
如果使用mybatis,我们也可以在application.yml或者application.properties配置schema:db/xx.sql来执行数据库初始化的sql文件.
使用生产数据库
### Spring Boot自动配置对数据库连接池的选择原则:优先选择使用Tomcat的数据库连接池
如果存在HikariCP,则启用
如果存在Commons DBCP,则启用
如果存在Commons DBCP2,则启用
按照官方文档的说法,我们在引入`mybatis-spring-boot-starter`其实已经引入了`tomcat-jdbc`的依赖,也就使用了tomcat的数据库连接池。
当然我们也可以配置自己的数据库连接池,比如配置阿里爸爸的`Druid`来作为我们的数据库连接池工具
使用JDBC
请看: https://github.com/sunshineasbefore/veryjava.spring.boot/tree/master/jdbc
两个数据源的配置
最基本的配置
进阶
今天多说一点就是,两个数据源分别针对不同的包下的mapper文件:JDBCDataSourceConfig
SSABDataSourceConfig
对比这两个类,其不同点在于
@MapperScan的扫描路径不一致,这个的用处主要在于用不同的包区分不同数据源对于数据的操作.
@ConfigurationProperties的prefix不一致,这个用来区分不同的数据源.
JDBCDataSourceConfig类中的dataSource()多了一个@Primary注解,指定某一个dataSource为主要的datasource.
代码
本文限于篇幅原因,不能展示所有的代码,如果想要完整的代码示例,请移步 https://github.com/sunshineasbefore/veryjava.spring.boot/tree/master/datasources 支持请点赞,不喜勿喷.
每天一点点,成长多一点.
相关文章推荐
- Spring Boot系列(一) Spring Boot介绍和基础POM文件
- Spring Boot系列(一) Spring Boot介绍和基础POM文件
- Spring系列介绍1
- Spring系列介绍3
- [Spring Boot 系列] 集成maven和Spring boot的profile功能
- SpringBoot入门系列:第二篇 再学Hello World
- spring-boot系列:初试spring-boot
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一--BOOTLOADER介绍
- Spring Boot 探索系列 - 自动化配置篇
- spring boot系列之一:windows下GVM安装
- 【j360-boot】Spring-boot系列五(docker、docker、docker)
- SpringBoot入门系列:第六篇 mybatis
- U-Boot系列之三:u-boot整体结构及启动代码分析(有加入一些新东西)
- Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 2----整体架构
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之一--BOOTLOADER介绍
- Spring-整体介绍
- Spring系列介绍2
- U-BOOT全线移植分析系列之一--BOOTLOADER介绍
- 小读spring ioc源码(一)——整体介绍
- Java Web系列:Spring Boot 基础 (转)