dynamic-datasource-spring-boot-starter简介
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器,支持通过注解切换数据源,和mybatis-plus集成等,可查看代码中samples这个子项目。
配置
pom中增加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
application配置文件中配置主库
spring.datasource.dynamic.datasource.master.url=jdbc:mysql://xx.xx.xx.xx:3307/dynamic
spring.datasource.dynamic.datasource.master.username=root
spring.datasource.dynamic.datasource.master.password=root
spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.jdbc.Driver
添加数据源
//动态数据源
@Autowired
protected DataSource dataSource;
//数据源创建器
@Autowired
protected DataSourceCreator dataSourceCreator;
//创建数据源
public void createNewDataSource(){
DynamicRoutingDataSource drds = (DynamicRoutingDataSource) dataSource;
DataSourceProperty dsp = new DataSourceProperty();
dsp.setPoolName(dbname);//链接池名称
dsp.setUrl(dburl);//数据库连接
dsp.setUsername(username);//用户名
dsp.setPassword(password);//密码
dsp.setDriverClassName(driverClassName);//驱动
//创建数据源并添加到系统中管理
DataSource dataSource = dataSourceCreator.createDataSource(dsp);
drds.addDataSource(dbname, dataSource);
}
//手动切换数据源
public void demo(){
DynamicDataSourceContextHolder.push(dbname);//数据源名称
try{
// your code 需注意使用后一定要使用poll清空数据源,
}catch(Exception e){
}finnally{
DynamicDataSourceContextHolder.poll();
}
}
来源:oschina
链接:https://my.oschina.net/MeiJianMing/blog/4319326