Springboot+druid+多数据源
在Spring Boot项目中配置多数据源,并使用Druid作为数据库连接池,你需要做以下几步:
- 添加依赖到你的
pom.xml
:
<!-- Druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
- 配置
application.properties
或application.yml
文件,添加多数据源配置:
spring:
datasource:
druid:
# 数据源1
db1:
url: jdbc:mysql://localhost:3306/db1
username: user1
password: pass1
driver-class-name: com.mysql.cj.jdbc.Driver
# 数据源2
db2:
url: jdbc:mysql://localhost:3306/db2
username: user2
password: pass2
driver-class-name: com.mysql.cj.jdbc.Driver
- 创建配置类,配置多个数据源:
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Bean
@Primary
@ConfigurationProperties("spring.datasource.druid.db1")
public DataSource dataSource1() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.db2")
public DataSource dataSource2() {
return DruidDataSourceBuilder.create().build();
}
}
- 使用
@Primary
注解指定主数据源,在需要使用特定数据源的地方使用@Qualifier
注解指定。 - 如果需要,可以为每个数据源配置不同的拦截器、监控 filters 等。
以上步骤提供了一个基本的多数据源配置示例。根据实际需求,你可能需要调整配置,比如事务管理、JPA 或 MyBatis 的集成等。
评论已关闭