spring-boot入门(六)多数据源
我们现在可以通过自定义的数据源,用spring boot迅速的搭建起一个访问数据库的应用,有时候一个系统往往会和多个数据库进行交互。当然可以通过远程服务调用方式访问多个数据库,每个服务负责不同的数据库访问,但是多数据源的方式可能会更加的快捷和高效,这依赖于系统的架构设计。
1. 多数据源的配置
与单数据源配置大致相同,需要引入各种spring boot和jdbc驱动,以及数据库连接池等等。以spring-boot入门(五)自定义数据源:druid为基础在此之上继续添加其它数据源。
1.1 配置application.yml文件
在application.yml文件中配置数据库的连接信息
boc:
datasource:
url: jdbc:mysql://localhost:3306/db1?useSSL=false&requireSSL=false
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
ccb:
datasource:
url: jdbc:mysql://localhost:3306/db2?useSSL=false&requireSSL=false
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
druid:
filters: stat, wall
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 10
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
removeAbandoned: true
removeAbandonedTimeout: 1800
logAbandoned: false
上面配置了两个数据源,boc和ccb分别是db1和db2,连接池使用的是阿里的druid。
1.2 初始化配置
初始化配置,首先定义一个DruidDataSourceProperties此类用于封装druid的配置属性。可以通过@ConfigurationProperties注解方便快速的注入上面定义的druid连接池。
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* @author JasonLin
* @version V1.0
* @date 2017/12/4
*/
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "druid")
public class DruidDataSourceProperties {
private String filters;
private int maxActive;
private int initialSize;
private int maxWait;
private int minIdle;
private long timeBetweenEvictionRunsMillis;