在application.yml文件中配置多个数据源默认使用第一个完整培训
时间: 2023-11-30 11:07:09 浏览: 85
好的,下面是在application.yml文件中配置多个数据源,默认使用第一个数据源的示例:
```yaml
spring:
datasource:
# 第一个数据源配置
primary:
url: jdbc:mysql://localhost:3306/primary_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: primary_user
password: primary_password
driver-class-name: com.mysql.cj.jdbc.Driver
# 第二个数据源配置
secondary:
url: jdbc:mysql://localhost:3306/secondary_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: secondary_user
password: secondary_password
driver-class-name: com.mysql.cj.jdbc.Driver
# 配置多数据源时,需要手动指定默认数据源为primary
mybatis-plus:
configuration:
# 指定默认数据源为primary
default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
default-scripting-language-type: org.apache.ibatis.scripting.xmltags.XMLLanguageDriver
map-underscore-to-camel-case: true
mapper-locations: classpath*:mapper/**/*.xml
global-config:
db-config:
logic-delete-value: -1
logic-not-delete-value: 1
id-type: auto
field-strategy: not_empty
```
以上示例中,我们配置了两个数据源:primary和secondary。
在mybatis-plus配置中,我们手动指定了默认数据源为primary。这样,当我们使用mybatis-plus进行数据库操作时,默认会使用primary这个数据源。
当然,如果需要使用secondary数据源,也可以手动指定。例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("secondaryDataSource")
private DataSource dataSource;
@Autowired
private UserMapper userMapper;
@Override
public List<User> listUsers() {
// 指定使用secondary数据源
DynamicDataSourceContextHolder.setDataSourceKey("secondary");
List<User> userList = userMapper.selectList(null);
// 切换回默认数据源
DynamicDataSourceContextHolder.clearDataSourceKey();
return userList;
}
}
```
以上示例中,我们首先注入了名为secondaryDataSource的数据源。然后,在需要使用secondary数据源的方法中,手动指定使用secondary数据源。最后,记得切换回默认数据源。
阅读全文