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(); } }