Skip to content

boddiguo/spring-boot-starter-multi-datasource

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

multi-datasource

support for multi datasource and master slave datasource for spring boot

###Configuration 添加如下配置到classpath下的application.properties文件中

一:多数据配置

multidatasource.groups.ds.dbType=MYSQL multidatasource.groups.ds.datasources[0].rwType=W multidatasource.groups.ds.datasources[0].driverClassName=com.mysql.jdbc.Driver multidatasource.groups.ds.datasources[0].url=jdbc:mysql://localhost:3306/ds_0 multidatasource.groups.ds.datasources[0].username=root multidatasource.groups.ds.datasources[0].password=123456 multidatasource.groups.ds.datasources[0].initialSize=1 multidatasource.groups.ds.datasources[0].minIdle=1 multidatasource.groups.ds.datasources[0].maxActive=20 multidatasource.groups.ds.datasources[0].maxWait=60000 multidatasource.groups.ds.datasources[0].timeBetweenEvictionRunsMillis=1000 multidatasource.groups.ds.datasources[0].minEvictableIdleTimeMillis=1000 multidatasource.groups.ds.datasources[0].maxPoolPreparedStatementPerConnectionSize=30

multidatasource.groups.ds.dbType=MYSQL multidatasource.groups.otherds.datasources[0].rwType=W multidatasource.groups.otherds.datasources[0].driverClassName=com.mysql.jdbc.Driver multidatasource.groups.otherds.datasources[0].url=jdbc:mysql://localhost:3306/ds_1 multidatasource.groups.otherds.datasources[0].username=root multidatasource.groups.otherds.datasources[0].password=123456 multidatasource.groups.otherds.datasources[0].initialSize=1 multidatasource.groups.otherds.datasources[0].minIdle=1 multidatasource.groups.otherds.datasources[0].maxActive=20 multidatasource.groups.otherds.datasources[0].maxWait=60000 multidatasource.groups.otherds.datasources[0].timeBetweenEvictionRunsMillis=1000 multidatasource.groups.otherds.datasources[0].minEvictableIdleTimeMillis=1000 multidatasource.groups.otherds.datasources[0].maxPoolPreparedStatementPerConnectionSize=30

以上配置会生成两个数据源service: 名称为DataSource-ds的WrapperDataSource的Bean 名称为DataSource-otherds的WrapperDataSource的Bean 以及数据库事务service: 名称为TransactionManager-ds的DataSourceTransactionManager的Bean 名称为TransactionManager-otherds的DataSourceTransactionManager的Bean

二:master/slave数据源配置

multidatasource.groups.ds.dbType=MYSQL multidatasource.groups.ds.datasources[0].rwType=W multidatasource.groups.ds.datasources[0].driverClassName=com.mysql.jdbc.Driver multidatasource.groups.ds.datasources[0].url=jdbc:mysql://localhost:3306/ds_0 multidatasource.groups.ds.datasources[0].username=root multidatasource.groups.ds.datasources[0].password=123456 multidatasource.groups.ds.datasources[0].initialSize=1 multidatasource.groups.ds.datasources[0].minIdle=1 multidatasource.groups.ds.datasources[0].maxActive=20 multidatasource.groups.ds.datasources[0].maxWait=60000 multidatasource.groups.ds.datasources[0].timeBetweenEvictionRunsMillis=1000 multidatasource.groups.ds.datasources[0].minEvictableIdleTimeMillis=1000 multidatasource.groups.ds.datasources[0].maxPoolPreparedStatementPerConnectionSize=30 multidatasource.groups.ds.datasources[1].rwType=R multidatasource.groups.ds.datasources[1].driverClassName=com.mysql.jdbc.Driver multidatasource.groups.ds.datasources[1].url=jdbc:mysql://localhost:3306/ds_0 multidatasource.groups.ds.datasources[1].username=root multidatasource.groups.ds.datasources[1].password=123456 multidatasource.groups.ds.datasources[1].initialSize=1 multidatasource.groups.ds.datasources[1].minIdle=1 multidatasource.groups.ds.datasources[1].maxActive=20 multidatasource.groups.ds.datasources[1].maxWait=60000 multidatasource.groups.ds.datasources[1].timeBetweenEvictionRunsMillis=1000 multidatasource.groups.ds.datasources[1].minEvictableIdleTimeMillis=1000 multidatasource.groups.ds.datasources[1].maxPoolPreparedStatementPerConnectionSize=30

以上数据源可以实现读写分离,sql语句为select的查询默认走备库,其他走主库 multidatasource.groups.ds.datasources[0].rwType=W --为主库,只能配置一个主库 multidatasource.groups.ds.datasources[1].rwType=R --备库,可以配置多个

参照以上配置,框架会自动注册以下数据源的service: 名称为DataSource-ds的MasterSlaveDataSource的Bean 名称为DataSource-ds-MASTER的DruidDataSource的Bean 名称为DataSource-ds-SLAVE-1的DruidDataSource的Bean

以及数据库事务service: 名称为TransactionManager-ds的DataSourceTransactionManager的Bean

About

multi datasource and master slate datasource start

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages