Springboot application.yml文件配置了多个数据源,如何指定读取某一个
时间: 2024-10-15 07:07:15 浏览: 35
在Spring Boot应用中,如果你在`application.yml`文件中配置了多个数据源(例如,`spring.datasource`标签下定义了多个`dataSource`),你可以通过环境变量(Environment Variables)或者Profile(Profile Configuration)来指定应用应该使用哪个数据源。
1. **环境变量**:
- 可以设置一个系统属性,比如`spring.datasource.name`,然后在`application.yml`中为每个数据源添加一个匹配项,如:
```yaml
dataSources:
default:
url: ${spring.datasource.url}
username: ${spring.datasource.username}
password: ${spring.datasource.password}
dataSources: # 或者其他名称如myDataSource
myDataSource:
url: jdbc:mysql://localhost/testdb?${spring.datasource.my.datasource.url.query}
username: testuser
password: testpass
driver-class-name: com.mysql.jdbc.Driver
```
然后在运行应用时,通过`-Dspring.datasource.name=myDataSource`指定使用哪个数据源。
2. **Profile(配置片段)**:
- 使用`@Profile`注解标记数据源配置,并在启动应用时提供对应的profile,如:
```yaml
profiles:
active: prod
dataSources:
default:
@Profile('dev')
url: ...
prod:
@Profile('prod')
url: ...
```
运行时可以通过命令`spring.profiles.active=prod`切换到对应的数据源。
阅读全文