druid多数据源配置 spring boot
时间: 2023-09-16 21:02:06 浏览: 203
在Spring Boot中,配置Druid多数据源有以下几个步骤:
1. 引入依赖:在`pom.xml`文件中,引入Druid和jdbc依赖。
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
```
2. 配置数据源信息:在`application.properties`或`application.yml`配置文件中,配置Druid数据源相关信息,包括数据库URL、用户名、密码等。
```properties
# 主数据源
spring.datasource.url=jdbc:mysql://localhost:3306/main_db?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 第二个数据源
spring.second-datasource.url=jdbc:mysql://localhost:3306/second_db?useUnicode=true&characterEncoding=UTF-8
spring.second-datasource.username=root
spring.second-datasource.password=root
spring.second-datasource.driver-class-name=com.mysql.jdbc.Driver
```
3. 配置多数据源:在`@Configuration`类中,配置多个Druid数据源,并将其注入到`DataSource`对象中。
```java
@Configuration
public class DataSourceConfig {
@Bean(name = "mainDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource mainDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean(name = "secondDataSource")
@ConfigurationProperties(prefix = "spring.second-datasource")
public DataSource secondDataSource() {
return DruidDataSourceBuilder.create().build();
}
}
```
4. 配置事务管理器:在`@Configuration`类中,配置多数据源的事务管理器,用于管理多个数据源的事务。
```java
@Configuration
public class TransactionManagerConfig {
@Autowired
@Qualifier("mainDataSource")
private DataSource mainDataSource;
@Autowired
@Qualifier("secondDataSource")
private DataSource secondDataSource;
@Bean
public PlatformTransactionManager mainTransactionManager() {
return new DataSourceTransactionManager(mainDataSource);
}
@Bean
public PlatformTransactionManager secondTransactionManager() {
return new DataSourceTransactionManager(secondDataSource);
}
}
```
5. 使用多数据源:在需要使用的地方,使用注解来指定使用哪个数据源。
```java
@Service
public class UserService {
@Autowired
@Qualifier("mainDataSource")
private JdbcTemplate mainJdbcTemplate;
@Autowired
@Qualifier("secondDataSource")
private JdbcTemplate secondJdbcTemplate;
public List<User> getAllUsersFromMainDataSource() {
return mainJdbcTemplate.query("SELECT * FROM users", new BeanPropertyRowMapper(User.class));
}
public List<User> getAllUsersFromSecondDataSource() {
return secondJdbcTemplate.query("SELECT * FROM users", new BeanPropertyRowMapper(User.class));
}
}
```
通过以上步骤,我们就成功配置了Druid多数据源,并且可以在代码中灵活地使用不同的数据源。
阅读全文