springboot多数据源
时间: 2023-06-28 10:08:07 浏览: 45
在Spring Boot中使用多个数据源,可以通过配置多个DataSource Bean来实现。下面是一个简单的示例:
首先,在application.properties文件中添加多个数据源的配置:
```
# 第一个数据源
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 第二个数据源
spring.datasource.db2.url=jdbc:mysql://localhost:3306/db2
spring.datasource.db2.username=root
spring.datasource.db2.password=password
spring.datasource.db2.driver-class-name=com.mysql.jdbc.Driver
```
然后,在代码中配置多个DataSource Bean:
```
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "db1DataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource db1DataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "db2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.db2")
public DataSource db2DataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "db1JdbcTemplate")
public JdbcTemplate db1JdbcTemplate(@Qualifier("db1DataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "db2JdbcTemplate")
public JdbcTemplate db2JdbcTemplate(@Qualifier("db2DataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
```
这里定义了两个DataSource Bean,一个是默认的数据源(@Primary),另一个是db2数据源。同时,也定义了两个JdbcTemplate Bean,分别使用了对应的DataSource Bean。
最后,在需要使用的地方注入对应的JdbcTemplate Bean即可:
```
@Autowired
@Qualifier("db1JdbcTemplate")
private JdbcTemplate db1JdbcTemplate;
@Autowired
@Qualifier("db2JdbcTemplate")
private JdbcTemplate db2JdbcTemplate;
```