如何查找绑定到应用程序的所有数据源
How to find all DataSources binding to an application
我想使用 spring-boot,spring-cloud 来获取绑定到 cloud foundry 应用程序的所有数据源。
有没有办法得到名单?
如果我可以获得服务名称,我也可以使用
AbstractCloudConfig.connectionFactory().dataSource(serviceId)
创建数据源。
DataSources 配置在 Cloud Foundry 中 'VCAP_SERVICES' 变量内的容器环境中设置。 System.getenv('VCAP_SERVICES') 应该列出您案例中的所有数据源。
参考:
https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#VCAP-SERVICES
您可以这样做来枚举数据库服务列表并为每个服务获取一个 DataSource
:
Cloud cloud = abstractCloudConfig.cloud();
List<ServiceInfo> serviceInfos = cloud.getServiceInfos(DataSource.class);
List<DataSource> dataSources = new ArrayList<>();
for (ServiceInfo serviceInfo : serviceInfos) {
dataSources.add(cloud.getServiceConnector(serviceInfo.getId, null));
}
我想使用 spring-boot,spring-cloud 来获取绑定到 cloud foundry 应用程序的所有数据源。 有没有办法得到名单? 如果我可以获得服务名称,我也可以使用
AbstractCloudConfig.connectionFactory().dataSource(serviceId)
创建数据源。
DataSources 配置在 Cloud Foundry 中 'VCAP_SERVICES' 变量内的容器环境中设置。 System.getenv('VCAP_SERVICES') 应该列出您案例中的所有数据源。
参考: https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#VCAP-SERVICES
您可以这样做来枚举数据库服务列表并为每个服务获取一个 DataSource
:
Cloud cloud = abstractCloudConfig.cloud();
List<ServiceInfo> serviceInfos = cloud.getServiceInfos(DataSource.class);
List<DataSource> dataSources = new ArrayList<>();
for (ServiceInfo serviceInfo : serviceInfos) {
dataSources.add(cloud.getServiceConnector(serviceInfo.getId, null));
}