druid配置多数据源
时间: 2023-08-15 22:14:39 浏览: 124
您可以使用Druid配置多数据源来实现在一个应用程序中连接多个数据库。以下是一种常见的配置方式:
1. 在application.properties(或application.yml)文件中添加以下配置:
```yaml
# 第一个数据源
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=db1_user
spring.datasource.password=db1_password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 第二个数据源
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2
spring.datasource.secondary.username=db2_user
spring.datasource.secondary.password=db2_password
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
```
2. 创建两个数据源的配置类,分别对应第一个和第二个数据源:
```java
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceConfig {
private String url;
private String username;
private String password;
private String driverClassName;
// Getter and Setter methods
}
@Configuration
@ConfigurationProperties(prefix = "spring.datasource.secondary")
public class SecondaryDataSourceConfig {
private String url;
private String username;
private String password;
private String driverClassName;
// Getter and Setter methods
}
```
3. 创建Druid数据源的配置类:
```java
@Configuration
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(DataSourceConfig dataSourceConfig) {
DruidDataSource druidDataSource = new DruidDataSource();
// 设置数据源属性
druidDataSource.setUrl(dataSourceConfig.getUrl());
druidDataSource.setUsername(dataSourceConfig.getUsername());
druidDataSource.setPassword(dataSourceConfig.getPassword());
druidDataSource.setDriverClassName(dataSourceConfig.getDriverClassName());
// 其他配置...
return druidDataSource;
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource.secondary")
public DataSource secondaryDataSource(SecondaryDataSourceConfig secondaryDataSourceConfig) {
DruidDataSource druidDataSource = new DruidDataSource();
// 设置数据源属性
druidDataSource.setUrl(secondaryDataSourceConfig.getUrl());
druidDataSource.setUsername(secondaryDataSourceConfig.getUsername());
druidDataSource.setPassword(secondaryDataSourceConfig.getPassword());
druidDataSource.setDriverClassName(secondaryDataSourceConfig.getDriverClassName());
// 其他配置...
return druidDataSource;
}
}
```
4. 在需要使用不同数据源的地方,使用`@Qualifier`注解指定要使用的数据源:
```java
@Service
public class MyService {
@Autowired
@Qualifier("dataSource")
private DataSource dataSource;
@Autowired
@Qualifier("secondaryDataSource")
private DataSource secondaryDataSource;
// 使用数据源进行操作...
}
```
这样就可以在应用程序中使用多个数据源了。请根据您的具体需求进行配置和调整。
阅读全文
相关推荐


















