在application.yml文件中配置多个数据源设置默认值并使用
时间: 2024-02-03 11:12:39 浏览: 21
可以通过在application.yml文件中配置多个数据源,并设置默认值来实现。下面是一个示例:
```yaml
spring:
datasource:
primary:
url: jdbc:mysql://localhost:3306/primary_db
username: primary_user
password: primary_password
secondary:
url: jdbc:mysql://localhost:3306/secondary_db
username: secondary_user
password: secondary_password
# 设置默认数据源为primary
# 如果需要使用secondary数据源则可以在代码中指定
# @Qualifier("secondary") 或使用配置项 spring.datasource.qualifier.secondary
# 或者在方法上使用 @Primary 标记 primary 数据源为默认
url: ${spring.datasource.primary.url}
username: ${spring.datasource.primary.username}
password: ${spring.datasource.primary.password}
```
在上面的配置中,定义了两个数据源,一个是primary,一个是secondary。同时也设置了默认数据源为primary。如果需要使用secondary数据源,则可以在代码中指定。
在代码中使用时,可以通过使用`@Qualifier`注解指定需要使用的数据源,或者在方法上使用`@Primary`注解标记primary数据源为默认。例如:
```java
@Service
public class UserServiceImpl implements UserService {
private final JdbcTemplate jdbcTemplate;
public UserServiceImpl(@Qualifier("secondary") JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public List<User> findAllUsers() {
return jdbcTemplate.query("SELECT * FROM user", new BeanPropertyRowMapper<>(User.class));
}
}
```
上面的代码中,使用`@Qualifier("secondary")`注解指定了需要使用的数据源为secondary。