springboot配置多数据源druid
时间: 2025-01-03 09:39:09 浏览: 25
### 关于Spring Boot中配置多个数据源使用Druid连接池的方法
#### 一、引入依赖
为了实现多数据源的支持,在`pom.xml`文件中除了要加入MyBatis和Druid的相关依赖外,还需要引入`dynamic-datasource-spring-boot-starter`来简化动态切换数据源的操作[^1]。
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic.datasource.version}</version>
</dependency>
<!-- Druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
```
#### 二、配置数据源属性
在application.yml或application.properties中定义各个数据源的具体参数以及指定使用的连接池类型为`com.alibaba.druid.pool.DruidDataSource`[^2]:
```yaml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
dynamic:
primary: master # 设置默认的数据源或者主数据源
strict: false # 是否严格区分数据源名称,默认false不严格
master:
url: jdbc:mysql://localhost:3306/db_master?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
slave:
url: jdbc:mysql://localhost:3307/db_slave?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
```
#### 三、创建自定义数据源配置类
通过编写Java配置类进一步定制化各数据源的行为,并注册到Spring容器内。对于每个额外的数据源都需单独声明并注入相应的Bean实例[^4]。
```java
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSource masterDataSource() {
return new DruidDataSource();
}
@Bean(name = "slaveDataSource")
@ConfigurationProperties(prefix = "spring.datasource.slave")
public DataSource slaveDataSource() {
return new DruidDataSource();
}
}
```
#### 四、服务层调用不同数据源
当需要访问特定的数据源时,可以在Service组件上标注@DS注解指明目标数据源的名字,从而达到按需读取的目的[^5]。
```java
@Service
@DS("master") // 使用名为'master'的数据源执行操作
public class MasterService {
}
@Service
@DS("slave") // 切换至'slave'数据源进行查询或其他动作
public class SlaveService {
}
```
阅读全文