SpringBoot+Mybatis-Plus使用多數據源

常見的使用Mybatis-Plus配置多數據源方式有兩種:一種是通過java config的方式手動配置兩個數據源,另一種方式便是使用 dynamic-datasource-spring-boot-starter。

dynamic-datasource-spring-boot-starter 是一個基於springboot的快速集成多數據源的啓動器。下面介紹​使用 dynamic-datasource-spring-boot-starter 配置多數據源:

1、引入依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
2、application.properties添加配置
spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

#設置默認數據庫源
spring.datasource.dynamic.primary=mydb1
#嚴格匹配數據源,默認爲false,true未匹配到指定數據庫時拋異常,false使用默認數據源
spring.datasource.dynamic.strict=false
#配置數據源mydb1
spring.datasource.dynamic.datasource.mydb1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.mydb1.url=jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC
spring.datasource.dynamic.datasource.mydb1.username=root
spring.datasource.dynamic.datasource.mydb1.password=123456
#配置數據源mydb2
spring.datasource.dynamic.datasource.mydb2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.mydb2.url=jdbc:mysql://localhost:3306/mydb2?serverTimezone=UTC
spring.datasource.dynamic.datasource.mydb2.username=root
spring.datasource.dynamic.datasource.mydb2.password=123456
3、使用
通過 @DS 註解配置選擇數據源,並且可以在類上進行配置。如果不使用@DS註解的類則使用primary配置的默認數據源。

@DS("mydb1")
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
@DS("mydb2")
@Mapper
public interface ProductMapper extends BaseMapper<Product> {
}
@Autowired
UserMapper userMapper;
@Autowired
ProductMapper productMapper;

void test() {
User user = userMapper.selectById(1);
System.out.println("數據源mydb1:"+user.toString());
Product product = productMapper.selectById(2);
System.out.println("數據源mydb2:"+product.toString());
}
4、集成druid連接池
引入依賴

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
修改配置文件,排除掉druid原生的自動配置

spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
或者修改Application

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章