springboot多数据源配置
时间: 2023-09-24 15:06:13 浏览: 167
在Spring Boot中配置多个数据源可以使用以下步骤:
1. 添加依赖
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.6.0</version>
</dependency>
```
2. 配置数据源
在application.properties文件中配置数据源:
```
# 主数据源
spring.datasource.url=jdbc:mysql://localhost:3306/main?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 第二个数据源
datasource2.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
datasource2.username=root
datasource2.password=root
datasource2.driver-class-name=com.mysql.jdbc.Driver
```
3. 配置数据源连接池
在Spring Boot中,可以使用Apache Commons DBCP 2连接池。在application.properties文件中配置连接池:
```
# 主数据源连接池
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.datasource.tomcat.initial-size=5
spring.datasource.tomcat.max-wait=20000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.test-on-borrow=true
# 第二个数据源连接池
datasource2.type=org.apache.commons.dbcp2.BasicDataSource
datasource2.tomcat.initial-size=5
datasource2.tomcat.max-wait=20000
datasource2.tomcat.max-active=50
datasource2.tomcat.test-on-borrow=true
```
4. 配置多数据源
在Spring Boot中,可以使用@Primary注解来指定主数据源。可以使用@ConfigurationProperties注解将多个数据源配置组合在一起,然后使用@Bean注解创建多个数据源:
```
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "mainDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource mainDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "testDataSource")
@ConfigurationProperties(prefix = "datasource2")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
}
```
在需要使用数据源的地方,可以使用@Qualifier注解来指定要使用的数据源:
```
@Autowired
@Qualifier("mainDataSource")
private DataSource mainDataSource;
@Autowired
@Qualifier("testDataSource")
private DataSource testDataSource;
```
阅读全文